package org.axway.grapes.commons.datamodel;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
public class ModuleTest {
@Test
public void checkIfArtifactsAreCorrectlyAddedToTheModule(){
Module module = new Module();
module.setName("name");
module.setVersion("1.0.0-1");
assertEquals(0, module.getArtifacts().size());
module.addArtifact(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "1.0.0-SNAPSHOT", null, null, null));
assertEquals(1, module.getArtifacts().size());
Artifact artifact = module.getArtifacts().iterator().next();
}
@Test
public void checkIfASetOfArtifactAreCorrectlyAddedToTheModule(){
Module module = new Module();
assertEquals(0, module.getArtifacts().size());
List<Artifact> artifacts = new ArrayList<Artifact>();
artifacts.add(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "1.0.0-SNAPSHOT", null, null, null));
artifacts.add(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "2.0.0-SNAPSHOT", null, null, null));
module.addAllArtifacts(artifacts);
assertEquals(2, module.getArtifacts().size());
}
@Test
public void checkIfArtifactsAreAddedOnlyOnceToTheModule(){
Module module = new Module();
assertEquals(0, module.getArtifacts().size());
module.addArtifact(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "1.0.0-SNAPSHOT", null, null, null));
assertEquals(1, module.getArtifacts().size());
module.addArtifact(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "1.0.0-SNAPSHOT", null, null, null));
assertEquals(1, module.getArtifacts().size());
}
@Test
public void checkIfSubmoduleAreCorrectlyAddedToTheModule(){
Module module = new Module();
module.setName("name");
module.setVersion("1.0.0-1");
module.setPromoted(true);
assertEquals(0, module.getArtifacts().size());
module.addSubmodule(DataModelFactory.createModule("submodule", "version"));
module.addSubmodule(DataModelFactory.createModule("submodule", "version"));
assertEquals(1, module.getSubmodules().size());
Module submodule = module.getSubmodules().iterator().next();
assertEquals("submodule", submodule.getName());
assertEquals("version", submodule.getVersion());
assertEquals(true, submodule.isPromoted());
}
@Test
public void setModulePromotion(){
Module module = new Module();
module.addArtifact(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "1.0.0-SNAPSHOT", null, null, null));
module.addSubmodule(DataModelFactory.createModule("submodule", "version"));
assertFalse(module.isPromoted());
assertFalse(module.getArtifacts().iterator().next().isPromoted());
module.setPromoted(true);
assertTrue(module.isPromoted());
assertTrue(module.getArtifacts().iterator().next().isPromoted());
assertTrue(module.getSubmodules().iterator().next().isPromoted());
}
@Test
public void checkWhenModulesAreEquals(){
Module module = DataModelFactory.createModule("module", "1.0.0-SNAPSHOT");
Module otherModule = new Module();
assertFalse(module.equals(otherModule));
otherModule.setName("module");
assertFalse(module.equals(otherModule));
otherModule.setVersion("1.0.0-SNAPSHOT");
assertTrue(module.equals(otherModule));
assertFalse(module.equals("test"));
}
@Test
public void ifModuleIsPromotedTheAddedArtifactsArePromotedAlso(){
Module module = DataModelFactory.createModule("module", "1.0.0-SNAPSHOT");
module.setPromoted(true);
module.addArtifact(DataModelFactory.createArtifact("com.axwa.ecd.d2d.test", "test", "1.0.0-SNAPSHOT", "", "", null));
assertTrue(module.getArtifacts().iterator().next().isPromoted());
}
@Test
public void addNewDependency(){
Module module = new Module();
module.setName("name");
module.setVersion("1.0.0-1");
Artifact dependency = new Artifact();
dependency.setArtifactId("test");
dependency.setGroupId("com.my.company");
dependency.setVersion("1.0.0-SNAPSHOT");
assertEquals(0, module.getDependencies().size());
module.addDependency(DataModelFactory.createDependency(dependency, Scope.COMPILE));
assertEquals(1, module.getDependencies().size());
Dependency dep = module.getDependencies().iterator().next();
}
@Test
public void ifAddManyTimeTheSameDependency(){
Module module = new Module();
Artifact dependency = new Artifact();
dependency.setArtifactId("test");
dependency.setGroupId("com.my.company");
dependency.setVersion("1.0.0-SNAPSHOT");
assertEquals(0, module.getDependencies().size());
module.addDependency(DataModelFactory.createDependency(dependency, Scope.COMPILE));
module.addDependency(DataModelFactory.createDependency(dependency, Scope.COMPILE));
assertEquals(1, module.getDependencies().size());
}
}