package org.axway.grapes.server.webapp.views; import com.google.common.collect.Lists; import org.axway.grapes.commons.datamodel.*; import org.axway.grapes.server.core.options.Decorator; import org.axway.grapes.server.webapp.views.utils.Row; import org.axway.grapes.server.webapp.views.utils.Table; import org.junit.Test; import java.util.Collections; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNotNull; public class DependencyListViewTest { @Test public void checkEmptyDependencyList(){ final DependencyListView depList = new DependencyListView("test", Collections.EMPTY_LIST, new Decorator()); final Table results = depList.getTable(); assertNotNull(results); assertEquals(0, results.size()); } @Test public void checkColumnConfiguration(){ final Decorator decorator = new Decorator(); decorator.setShowSources(true); decorator.setShowSourcesVersion(false); decorator.setShowTargets(false); decorator.setShowTargetsDownloadUrl(false); decorator.setShowTargetsSize(false); decorator.setShowScopes(false); decorator.setShowLicenses(false); decorator.setShowLicensesComment(false); decorator.setShowLicensesLongName(false); decorator.setShowLicensesUrl(false); final DependencyListView depList = new DependencyListView("test", Collections.EMPTY_LIST, decorator); Table results = depList.getTable(); assertNotNull(results); assertEquals(1, results.getHeaders().size()); decorator.setShowSources(true); decorator.setShowSourcesVersion(true); decorator.setShowTargets(true); decorator.setShowTargetsDownloadUrl(true); decorator.setShowTargetsSize(true); decorator.setShowScopes(true); decorator.setShowLicenses(true); decorator.setShowLicensesComment(true); decorator.setShowLicensesLongName(true); decorator.setShowLicensesUrl(true); results = depList.getTable(); assertNotNull(results); assertEquals(10, results.getHeaders().size()); assertEquals(DependencyListView.SOURCE_FIELD, results.getHeaders().get(0)); assertEquals(DependencyListView.SOURCE_VERSION_FIELD, results.getHeaders().get(1)); assertEquals(DependencyListView.TARGET_FIELD, results.getHeaders().get(2)); assertEquals(DependencyListView.DOWNLOAD_URL_FIELD, results.getHeaders().get(3)); assertEquals(DependencyListView.SIZE_FIELD, results.getHeaders().get(4)); assertEquals(DependencyListView.SCOPE_FIELD, results.getHeaders().get(5)); assertEquals(DependencyListView.LICENSE_FIELD, results.getHeaders().get(6)); assertEquals(DependencyListView.LICENSE_LONG_NAME_FIELD, results.getHeaders().get(7)); assertEquals(DependencyListView.LICENSE_URL_FIELD, results.getHeaders().get(8)); assertEquals(DependencyListView.LICENSE_COMMENT_FIELD, results.getHeaders().get(9)); } @Test public void checkDependenciesInformationOfTheTable(){ final Decorator decorator = new Decorator(); decorator.setShowSources(true); decorator.setShowSourcesVersion(true); decorator.setShowTargets(true); decorator.setShowTargetsDownloadUrl(true); decorator.setShowTargetsSize(true); decorator.setShowScopes(true); decorator.setShowLicenses(true); decorator.setShowLicensesComment(true); decorator.setShowLicensesLongName(true); decorator.setShowLicensesUrl(true); final License license = DataModelFactory.createLicense("name", "long name", "comment", "", "url"); final DependencyListView depList = new DependencyListView("test", Collections.singletonList(license), decorator); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "test", "1", null, "jar", "jar"); artifact.setDownloadUrl("http://"); artifact.setSize("123456"); artifact.addLicense(license.getName()); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); dependency.setSourceName("module1"); dependency.setSourceVersion("1"); depList.addDependency(dependency); final Table results = depList.getTable(); assertNotNull(results); assertEquals(1, results.size()); assertEquals(1, results.getRows().size()); final Row result = results.getRows().get(0); assertEquals(dependency.getSourceName(), result.get(0)); assertEquals(dependency.getSourceVersion(), result.get(1)); assertEquals(dependency.getTarget().getGavc(), result.get(2)); assertEquals(dependency.getTarget().getDownloadUrl(), result.get(3)); assertEquals(dependency.getTarget().getSize(), result.get(4)); assertEquals(dependency.getScope().name(), result.get(5)); assertEquals(license.getName(), result.get(6)); assertEquals(license.getLongName(), result.get(7)); assertEquals(license.getUrl(), result.get(8)); assertEquals(license.getComments(), result.get(9)); } @Test public void checkDependenciesInformationOfTheTableIfDependencyWithNoLicense(){ final Decorator decorator = new Decorator(); decorator.setShowSources(true); decorator.setShowSourcesVersion(true); decorator.setShowTargets(true); decorator.setShowTargetsDownloadUrl(true); decorator.setShowTargetsSize(true); decorator.setShowScopes(true); decorator.setShowLicenses(true); decorator.setShowLicensesComment(true); decorator.setShowLicensesLongName(true); decorator.setShowLicensesUrl(true); final DependencyListView depList = new DependencyListView("test", Collections.EMPTY_LIST, decorator); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "test", "1", null, "jar", "jar"); artifact.setDownloadUrl("http://"); artifact.setSize("123456"); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); dependency.setSourceName("module1"); dependency.setSourceVersion("1"); depList.addDependency(dependency); final Table results = depList.getTable(); assertNotNull(results); assertEquals(1, results.size()); assertEquals(1, results.getRows().size()); final Row result = results.getRows().get(0); assertEquals(dependency.getSourceName(), result.get(0)); assertEquals(dependency.getSourceVersion(), result.get(1)); assertEquals(dependency.getTarget().getGavc(), result.get(2)); assertEquals(dependency.getTarget().getDownloadUrl(), result.get(3)); assertEquals(dependency.getTarget().getSize(), result.get(4)); assertEquals(dependency.getScope().name(), result.get(5)); assertEquals("", result.get(6)); assertEquals("", result.get(7)); assertEquals("", result.get(8)); assertEquals("", result.get(9)); } @Test public void checkThatIfALicenseDoesNotExistAFakeOneIsCreated(){ final Decorator decorator = new Decorator(); decorator.setShowSources(true); decorator.setShowSourcesVersion(true); decorator.setShowTargets(true); decorator.setShowTargetsDownloadUrl(true); decorator.setShowTargetsSize(true); decorator.setShowScopes(true); decorator.setShowLicenses(true); decorator.setShowLicensesComment(true); decorator.setShowLicensesLongName(true); decorator.setShowLicensesUrl(true); final DependencyListView depList = new DependencyListView("test", Collections.EMPTY_LIST, decorator); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "test", "1", null, "jar", "jar"); artifact.setDownloadUrl("http://"); artifact.setSize("123456"); artifact.addLicense("test"); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); dependency.setSourceName("module1"); dependency.setSourceVersion("1"); depList.addDependency(dependency); final Table results = depList.getTable(); assertNotNull(results); assertEquals(1, results.size()); assertEquals(1, results.getRows().size()); final Row result = results.getRows().get(0); assertEquals(dependency.getSourceName(), result.get(0)); assertEquals(dependency.getSourceVersion(), result.get(1)); assertEquals(dependency.getTarget().getGavc(), result.get(2)); assertEquals(dependency.getTarget().getDownloadUrl(), result.get(3)); assertEquals(dependency.getTarget().getSize(), result.get(4)); assertEquals(dependency.getScope().name(), result.get(5)); assertEquals("#test# (to be identified)", result.get(6)); assertEquals("not identified yet", result.get(7)); assertEquals("not identified yet", result.get(8)); assertEquals("not identified yet", result.get(9)); } @Test public void checkThatIfAnArtifactHasManyLicensesItAppearsAsManyTimesThatItHasLicense(){ final License license1 = DataModelFactory.createLicense("name1", "long name1", "comment1", "", "url1"); final License license2 = DataModelFactory.createLicense("name2", "long name2", "comment2", "", "url2"); final DependencyListView depList = new DependencyListView("test", Lists.newArrayList(license1, license2), new Decorator()); final Artifact artifact = DataModelFactory.createArtifact("com.my.company", "test", "1", null, "jar", "jar"); artifact.setDownloadUrl("http://"); artifact.setSize("123456"); artifact.addLicense(license1.getName()); artifact.addLicense(license2.getName()); final Dependency dependency = DataModelFactory.createDependency(artifact, Scope.COMPILE); dependency.setSourceName("module1"); dependency.setSourceVersion("1"); depList.addDependency(dependency); final Table results = depList.getTable(); assertNotNull(results); assertEquals(2, results.size()); assertEquals(2, results.getRows().size()); } }