/** * Copyright (C) 2015 Orange * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.francetelecom.clara.cloud.commons; import java.net.MalformedURLException; import java.net.URL; import org.junit.Assert; import org.junit.Test; import static org.junit.Assert.*; import org.junit.runner.RunWith; import org.junit.runners.BlockJUnit4ClassRunner; @RunWith(BlockJUnit4ClassRunner.class) public class MavenReferenceTest { @Test public void fromGavString() { try { MavenReference.fromGavString(null); fail("Should not be here"); } catch (IllegalArgumentException iae) { } try { MavenReference.fromGavString(""); fail("Should not be here"); } catch (IllegalArgumentException iae) { } try { MavenReference.fromGavString("a:::"); fail("Should not be here"); } catch (IllegalArgumentException iae) { } try { MavenReference.fromGavString("com.francelecom:::"); fail("Should not be here"); } catch (IllegalArgumentException iae) { } try { MavenReference.fromGavString("com.francelecom:apt::"); fail("Should not be here"); } catch (IllegalArgumentException iae) { } MavenReference ref = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3"); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "com.francelecom", ref.getGroupId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "apt-cloud", ref.getArtifactId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "1.3", ref.getVersion()); Assert.assertNull("Testing groupid with MavenReference.fromGavString", ref.getClassifier()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "jar", ref.getExtension()); ref = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:test:ear"); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "com.francelecom", ref.getGroupId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "apt-cloud", ref.getArtifactId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "1.3", ref.getVersion()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "test", ref.getClassifier()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "ear", ref.getExtension()); ref = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3::ear"); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "com.francelecom", ref.getGroupId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "apt-cloud", ref.getArtifactId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "1.3", ref.getVersion()); Assert.assertNull("Testing groupid with MavenReference.fromGavString", ref.getClassifier()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "ear", ref.getExtension()); ref = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3::"); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "com.francelecom", ref.getGroupId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "apt-cloud", ref.getArtifactId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "1.3", ref.getVersion()); Assert.assertNull("Testing groupid with MavenReference.fromGavString", ref.getClassifier()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "jar", ref.getExtension()); ref = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:"); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "com.francelecom", ref.getGroupId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "apt-cloud", ref.getArtifactId()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "1.3", ref.getVersion()); Assert.assertNull("Testing groupid with MavenReference.fromGavString", ref.getClassifier()); Assert.assertEquals("Testing groupid with MavenReference.fromGavString", "jar", ref.getExtension()); } @Test public void testCopyConst() throws MalformedURLException { MavenReference origin = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:draft:ear"); String accessUrl = "http://orange.fr"; origin.setAccessUrl(new URL(accessUrl)); MavenReference copy = new MavenReference(origin); assertNotSame(origin, copy); assertEquals(origin.getArtifactId(), copy.getArtifactId()); assertEquals(origin.getClassifier(), copy.getClassifier()); assertEquals(origin.getGroupId(), copy.getGroupId()); assertEquals(origin.getExtension(), copy.getExtension()); assertEquals(origin.getVersion(), copy.getVersion()); assertNotSame(origin.getAccessUrl(), copy.getAccessUrl()); assertEquals(origin.getAccessUrl().toExternalForm(), copy.getAccessUrl().toExternalForm()); origin.setAccessUrl(null); copy = new MavenReference(origin); assertNotSame(origin, copy); assertEquals(origin.getArtifactId(), copy.getArtifactId()); assertEquals(origin.getClassifier(), copy.getClassifier()); assertEquals(origin.getGroupId(), copy.getGroupId()); assertEquals(origin.getExtension(), copy.getExtension()); assertEquals(origin.getVersion(), copy.getVersion()); assertNull(copy.getAccessUrl()); } @Test public void testToGavString() throws MalformedURLException { MavenReference artifactRef = new MavenReference(); artifactRef.setArtifactId("apt-cloud"); assertEquals("[inherited]:apt-cloud:[inherited]::", artifactRef.toGavString()); MavenReference gavRef = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3"); assertEquals("com.francelecom:apt-cloud:1.3::jar", gavRef.toGavString()); MavenReference gavcRef = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:draft"); assertEquals("com.francelecom:apt-cloud:1.3:draft:jar", gavcRef.toGavString()); MavenReference gavceRef = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:draft:ear"); assertEquals("com.francelecom:apt-cloud:1.3:draft:ear", gavceRef.toGavString()); String testUrl = "http://orange.fr"; gavceRef.setAccessUrl(new URL(testUrl)); assertEquals("com.francelecom:apt-cloud:1.3:draft:ear", gavceRef.toGavString()); } @Test public void testToString() throws MalformedURLException { MavenReference artifactRef = new MavenReference(); artifactRef.setArtifactId("apt-cloud"); assertEquals("[inherited]:apt-cloud:[inherited]::", artifactRef.toString()); MavenReference gavRef = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3"); assertEquals("com.francelecom:apt-cloud:1.3::jar", gavRef.toString()); MavenReference gavcRef = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:draft"); assertEquals("com.francelecom:apt-cloud:1.3:draft:jar", gavcRef.toString()); MavenReference gavceRef = MavenReference.fromGavString("com.francelecom:apt-cloud:1.3:draft:ear"); assertEquals("com.francelecom:apt-cloud:1.3:draft:ear", gavceRef.toString()); String testUrl = "http://orange.fr"; gavceRef.setAccessUrl(new URL(testUrl)); assertEquals("com.francelecom:apt-cloud:1.3:draft:ear", gavceRef.toString()); } @Test public void testGetArtifactName() { MavenReference ref1 = new MavenReference(); assertNotNull(ref1.getArtifactName()); MavenReference nullRef = new MavenReference(null, null, null); assertEquals("", nullRef.getArtifactName()); MavenReference jarRef = new MavenReference("com.francetelecom", "apt-cloud", "1.3"); assertEquals("apt-cloud-1.3.jar", jarRef.getArtifactName()); MavenReference tarRef = new MavenReference("com.francetelecom", "apt-cloud", "1.3", "tar.gz"); assertEquals("apt-cloud-1.3.tar.gz", tarRef.getArtifactName()); MavenReference tarClassifierRef = new MavenReference("com.francetelecom", "apt-cloud", "1.3", "tar.gz", "bin"); assertEquals("apt-cloud-1.3-bin.tar.gz", tarClassifierRef.getArtifactName()); } @Test public void testEquals() { MavenReference ref1 = new MavenReference("com.francetelecom", "apt-cloud", "1.3"); assertFalse(ref1.equals(null)); MavenReference expected1 = new MavenReference("com.francetelecom", "apt-cloud", "1.3", "jar", null); assertTrue(ref1.equals(expected1)); assertFalse(ref1.equals(MavenReference.fromGavString("test:tutu:45"))); assertTrue(ref1.equals(MavenReference.fromGavString("com.francetelecom:apt-cloud:1.3"))); assertTrue(ref1.equals(ref1)); ref1.setExtension("war"); assertFalse(ref1.equals(MavenReference.fromGavString("com.francetelecom:apt-cloud:1.3"))); MavenReference ref2 = MavenReference.fromGavString("com.francetelecom:apt-cloud:1.3"); ref2.setExtension("EAR"); assertFalse(ref1.equals(ref2)); ref2.setExtension("war"); assertTrue(ref1.equals(ref2)); ref2 = new MavenReference(); MavenReference expected2 = new MavenReference(null, null, null, null, null); assertTrue(ref2.equals(expected2)); } @Test public void validateDuplicateWithEmpty() { MavenReference ref1 = new MavenReference("com.francetelecom", "apt-cloud", "1.3"); MavenReference expected1 = new MavenReference("com.francetelecom", "apt-cloud", "1.3", "jar", ""); assertFalse(ref1.equals(expected1)); assertTrue("Ref1 " + ref1 + "is not equals to expected: " + expected1 + ". Check null <=> \"\" conversion", ref1.duplicateWithEmpty().equals(expected1)); MavenReference ref2 = new MavenReference(); MavenReference expected2 = new MavenReference("", "", "", "", ""); assertFalse(ref2.equals(expected2)); assertTrue("Ref2 " + ref2 + "is not equals to expected: " + expected2 + ". Check null <=> \"\" conversion", ref2.duplicateWithEmpty().equals(expected2)); } @Test public void validateDuplicateWithNull() { MavenReference ref1 = new MavenReference("com.francetelecom", "apt-cloud", "1.3", "", ""); MavenReference expected1 = new MavenReference("com.francetelecom", "apt-cloud", "1.3", null, null); assertFalse(ref1.equals(expected1)); assertTrue("Ref1 " + ref1 + "is not equals to expected: " + expected1 + ". Check null <=> \"\" conversion", ref1.duplicateWithNull().equals(expected1)); MavenReference ref2 = new MavenReference("", "", "", "", ""); MavenReference expected2 = new MavenReference(); assertFalse(ref2.equals(expected2)); assertTrue("Ref2 " + ref2 + "is not equals to expected: " + expected2 + ". Check null <=> \"\" conversion", ref2.duplicateWithNull().equals(expected2)); } }