package org.axway.grapes.commons.utils; import org.axway.grapes.commons.datamodel.*; import org.junit.Test; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.*; public class ModuleUtilsTest { @Test public void testGetAllTheArtifactsOfAModuleThatHasSubModules(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Module subModule = DataModelFactory.createModule("module11", "1.0.0-SNAPSHOT"); final Module subSubModule = DataModelFactory.createModule("module111", "1.0.0-SNAPSHOT"); module.addSubmodule(subModule); subModule.addSubmodule(subSubModule); final Artifact artifact1 = DataModelFactory.createArtifact("com.my.company", "artifact1", "1.0.0-SNAPSHOT", null, "jar", "jar"); module.addArtifact(artifact1); final Artifact artifact2 = DataModelFactory.createArtifact("com.my.company", "artifact2", "1.0.0-SNAPSHOT", null, "jar", "jar"); subModule.addArtifact(artifact2); final Artifact artifact3 = DataModelFactory.createArtifact("com.my.company", "artifact3", "1.0.0-SNAPSHOT", null, "jar", "jar"); subSubModule.addArtifact(artifact3); final List<Artifact> artifacts = ModuleUtils.getAllArtifacts(module); assertEquals(3, artifacts.size()); assertTrue(artifacts.contains(artifact1)); assertTrue(artifacts.contains(artifact2)); assertTrue(artifacts.contains(artifact3)); } @Test public void testGetAllDependencies(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); module.addDependency(dependency); final List<Dependency> dependencies = ModuleUtils.getAllDependencies(module); assertNotNull(dependencies); assertEquals(1, dependencies.size()); assertEquals(dependency, dependencies.get(0)); } @Test public void testGetAllDependenciesOfAnEmptyModule(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final List<Dependency> dependencies = ModuleUtils.getAllDependencies(module); assertNotNull(dependencies); assertEquals(0, dependencies.size()); } @Test public void testGetAllDependenciesWithSubModules(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); final Module subModule = DataModelFactory.createModule("module11", "1.0.0-SNAPSHOT"); subModule.addDependency(dependency); module.addSubmodule(subModule); final List<Dependency> dependencies = ModuleUtils.getAllDependencies(module); assertNotNull(dependencies); assertEquals(1, dependencies.size()); assertEquals(dependency, dependencies.get(0)); } @Test public void testGetAllDependenciesWithSubModulesAvoidingArtifactsOfTheModuleToBeInDependencies(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "artifact1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Artifact artifact2 = DataModelFactory.createArtifact("com.my.company", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); final Dependency dependency2 = DataModelFactory.createDependency(artifact2, Scope.COMPILE); final Module subModule = DataModelFactory.createModule("module11", "1.0.0-SNAPSHOT"); subModule.addDependency(dependency); subModule.addDependency(dependency2); module.addArtifact(artifact); module.addSubmodule(subModule); final List<Dependency> dependencies = ModuleUtils.getAllDependencies(module); assertNotNull(dependencies); assertEquals(1, dependencies.size()); assertEquals(dependency2, dependencies.get(0)); } @Test public void testGetAllDependenciesWithSubModulesAvoidingArtifactsOfTheModuleToBeInDependenciesEvenForTrickSourcesJar(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "artifact1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Artifact artifact2 = DataModelFactory.createArtifact("com.my.company", "artifact1", "1.0.0-SNAPSHOT", null, "source-jar", "jar"); final Dependency dependency = DataModelFactory.createDependency(artifact2, Scope.COMPILE); final Module subModule = DataModelFactory.createModule("module11", "1.0.0-SNAPSHOT"); subModule.addDependency(dependency); module.addArtifact(artifact); module.addSubmodule(subModule); final List<Dependency> dependencies = ModuleUtils.getAllDependencies(module); assertNotNull(dependencies); assertEquals(0, dependencies.size()); } @Test public void testGetAllDependenciesAvoidDuplications(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); final Module subModule = DataModelFactory.createModule("module11", "1.0.0-SNAPSHOT"); subModule.addDependency(dependency); module.addSubmodule(subModule); module.addDependency(dependency); final List<Dependency> dependencies = ModuleUtils.getAllDependencies(module); assertNotNull(dependencies); assertEquals(1, dependencies.size()); assertEquals(dependency, dependencies.get(0)); } @Test public void testGetCorporateDependencies(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact1 = DataModelFactory.createArtifact("com.my.company.test", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency1 = DataModelFactory.createDependency(artifact1, Scope.COMPILE); final Artifact artifact2 = DataModelFactory.createArtifact("org.all", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency2 = DataModelFactory.createDependency(artifact2, Scope.COMPILE); module.addDependency(dependency1); module.addDependency(dependency2); final List<String> corporateFilters = new ArrayList<String>(); corporateFilters.add("com.my.company"); final List<Dependency> dependencies = ModuleUtils.getCorporateDependencies(module, corporateFilters); assertNotNull(dependencies); assertEquals(1, dependencies.size()); assertEquals(dependency1, dependencies.get(0)); } @Test public void testGetThirdPartyLibraries(){ final Module module = DataModelFactory.createModule("module1", "1.0.0-SNAPSHOT"); final Artifact artifact1 = DataModelFactory.createArtifact("com.my.company.test", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency1 = DataModelFactory.createDependency(artifact1, Scope.COMPILE); final Artifact artifact2 = DataModelFactory.createArtifact("org.all", "dependency1", "1.0.0-SNAPSHOT", null, "jar", "jar"); final Dependency dependency2 = DataModelFactory.createDependency(artifact2, Scope.COMPILE); module.addDependency(dependency1); module.addDependency(dependency2); final List<String> corporateFilters = new ArrayList<String>(); corporateFilters.add("com.my.company"); final List<Dependency> dependencies = ModuleUtils.getThirdPartyLibraries(module, corporateFilters); assertNotNull(dependencies); assertEquals(1, dependencies.size()); assertEquals(dependency2, dependencies.get(0)); } }