/*******************************************************************************
* Copyright (c) 2013, 2014 Red Hat, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat Inc. - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.thym.core.test;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.thym.core.HybridProjectConventions;
import org.junit.Test;
import static org.junit.Assert.*;
public class HybridProjectConventionsTest {
@Test
public void testProjectNameValidationInvalids(){
String[] invalidNames = {"","9","!project", " ", "9abc"};
for (int i = 0; i < invalidNames.length; i++) {
IStatus status = HybridProjectConventions.validateProjectName(invalidNames[i]);
assertEquals(invalidNames[i] +" is validated as a project name but it should NOT", status.getSeverity(), IStatus.ERROR);
}
}
@Test
public void testProjectNameValidationValids(){
String[] validNames = {"My","MyProject"};
for (int i = 0; i < validNames.length; i++) {
IStatus status = HybridProjectConventions.validateProjectName(validNames[i]);
assertEquals(validNames[i] +" is NOT validated as a project name but it should", status.getSeverity(), IStatus.OK);
}
}
@Test
public void testProjectIDValidationInvalids(){
String[] invalidIDs= {"","A", "9", "!id", " ", "9a.123", "ab", "_abc.def"};
for (int i = 0; i < invalidIDs.length; i++) {
IStatus status = HybridProjectConventions.validateProjectID(invalidIDs[i]);
assertEquals(invalidIDs[i] +" is validated as a project ID but it should NOT",
status.getSeverity(), IStatus.ERROR);
}
}
@Test
public void testProjectIDValidationValids(){
String[] validIDs= {"abc.cde", "abc.cde.fgh", "A123._456","abc.cd_ef" };
for (int i = 0; i < validIDs.length; i++) {
IStatus status = HybridProjectConventions.validateProjectID(validIDs[i]);
assertEquals(validIDs[i] +" is NOT validated as a project ID but it should",
status.getSeverity(), IStatus.OK);
}
}
@Test
public void testApplicationNameValidationInvalids(){
String[] appNames = {""," "};
for (int i = 0; i < appNames.length; i++) {
IStatus status = HybridProjectConventions.validateApplicationName(appNames[i]);
assertEquals(appNames[i] + " is validated as an application name but it should NOT",
status.getSeverity(), IStatus.ERROR);
}
IStatus warnStatus = HybridProjectConventions.validateApplicationName("012345678901234567890123456");
assertEquals(warnStatus.getSeverity(), IStatus.WARNING);
}
@Test
public void testApplicationNameValidationValids(){
String[] appNames = {"My","My Project" ,"1 Project","A long project name", "A" };
for (int i = 0; i < appNames.length; i++) {
IStatus status = HybridProjectConventions.validateApplicationName(appNames[i]);
assertEquals(appNames[i] + " is NOT validated as an application name but it should NOT",
status.getSeverity(), IStatus.OK);
}
}
@Test
public void testGenerateApplicationName(){
String[][] projectNames = {{"MyProject", "My Project"},
{"My_Project","My Project"},
{"This is a project","This is a project"},
{"This Is1Project","This Is1 Project"},
{"This_ISAProject","This ISA Project"}
};
for (int i = 0; i < projectNames.length; i++) {
assertEquals(projectNames[i][1], HybridProjectConventions.generateApplicationName(projectNames[i][0]));
}
}
@Test
public void testGenerateProjectID(){
String[][] projectNames = {{"MyProject", "my.project"},
{"My_Project","my.project"},
{"This is a project","this.is.a.project"},
{"This Is1Project","this.is1.project"},
{"This_ISAProject","this.isa.project"}
};
for (int i = 0; i < projectNames.length; i++) {
assertEquals(projectNames[i][1], HybridProjectConventions.generateProjectID(projectNames[i][0]));
}
}
}