package org.springframework.roo.project;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.springframework.roo.project.ProjectMetadata.MODULE_SEPARATOR;
import static org.springframework.roo.project.ProjectMetadata.PROJECT_MID_PREFIX;
import org.junit.Test;
import org.springframework.roo.project.maven.Pom;
/**
* Unit test of {@link ProjectMetadata}
*
* @author Andrew Swan
* @since 1.2.0
*/
public class ProjectMetadataTest {
private static final String LEVEL_ONE_MODULE = "core";
private static final String LEVEL_ONE_MID = PROJECT_MID_PREFIX + MODULE_SEPARATOR
+ LEVEL_ONE_MODULE;
private static final String LEVEL_TWO_MODULE = LEVEL_ONE_MODULE + MODULE_SEPARATOR + "sub";
private static final String LEVEL_TWO_MID = PROJECT_MID_PREFIX + MODULE_SEPARATOR
+ LEVEL_TWO_MODULE;
private static final String ROOT_MID = PROJECT_MID_PREFIX;
@Test
public void testConstructorForLevelTwoModule() {
// Set up
final Pom mockPom = mock(Pom.class);
when(mockPom.getModuleName()).thenReturn(LEVEL_TWO_MODULE);
// Invoke
final ProjectMetadata projectMetadata = new ProjectMetadata(mockPom);
// Check
assertEquals(mockPom, projectMetadata.getPom());
assertEquals(LEVEL_TWO_MODULE, projectMetadata.getModuleName());
assertEquals(LEVEL_TWO_MID, projectMetadata.getId());
}
@Test
public void testGetModuleNameFromLevelOneModuleMID() {
assertEquals(LEVEL_ONE_MODULE, ProjectMetadata.getModuleName(LEVEL_ONE_MID));
}
@Test
public void testGetModuleNameFromRootModuleMID() {
assertEquals("", ProjectMetadata.getModuleName(ROOT_MID));
}
@Test
public void testGetProjectIdentifierForLevelOneModule() {
assertEquals(LEVEL_ONE_MID, ProjectMetadata.getProjectIdentifier(LEVEL_ONE_MODULE));
}
@Test
public void testGetProjectIdentifierForLevelTwoModule() {
assertEquals(LEVEL_TWO_MID, ProjectMetadata.getProjectIdentifier(LEVEL_TWO_MODULE));
}
@Test
public void testGetProjectIdentifierForRootModule() {
assertEquals(ROOT_MID, ProjectMetadata.getProjectIdentifier(""));
}
@Test
public void testInvalidMIDIsNotValid() {
assertFalse(ProjectMetadata.isValid("MID:foo#bar?baz"));
}
@Test
public void testLevelOneMIDIsValid() {
assertTrue(ProjectMetadata.isValid(LEVEL_ONE_MID));
}
@Test
public void testLevelTwoMIDIsValid() {
assertTrue(ProjectMetadata.isValid(LEVEL_TWO_MID));
}
@Test
public void testRootMIDIsValid() {
assertTrue(ProjectMetadata.isValid(ROOT_MID));
}
}