1 /******************************************************************************* 2 * Copyright (c) 2007, 2010 compeople AG and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * compeople AG (Stefan Liebig) - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.equinox.p2.tests.metadata; 15 16 import static org.junit.Assert.assertEquals; 17 import static org.junit.Assert.assertNotNull; 18 import static org.junit.Assert.assertThrows; 19 20 import org.eclipse.equinox.internal.p2.metadata.ArtifactKey; 21 import org.eclipse.equinox.p2.metadata.IArtifactKey; 22 import org.eclipse.equinox.p2.metadata.Version; 23 import org.junit.Test; 24 25 /** 26 * Test <code>ArtifactkeyDeSerializer</code> 27 */ 28 public class ArtifactKeyParsingTest { 29 @Test testSerialize()30 public void testSerialize() { 31 IArtifactKey key = new ArtifactKey("classifier", "identifier", Version.create("1.0")); 32 assertEquals("classifier,identifier,1.0.0", key.toExternalForm()); 33 } 34 35 @Test testSerializeEmptyClassifier()36 public void testSerializeEmptyClassifier() { 37 IArtifactKey key = new ArtifactKey("", "identifier", Version.create("1.0")); 38 assertEquals(",identifier,1.0.0", key.toExternalForm()); 39 } 40 41 @Test testDeserialize()42 public void testDeserialize() { 43 IArtifactKey key = ArtifactKey.parse("classifier,identifier,1.0.0"); 44 assertNotNull(key); 45 assertEquals("classifier", key.getClassifier()); 46 assertEquals("identifier", key.getId()); 47 assertEquals(Version.create("1.0"), key.getVersion()); 48 } 49 50 @Test testDeserializeEmptyClassifier()51 public void testDeserializeEmptyClassifier() { 52 IArtifactKey key = ArtifactKey.parse(",identifier,1.0.0"); 53 assertNotNull(key); 54 assertEquals("", key.getClassifier()); 55 assertEquals("identifier", key.getId()); 56 assertEquals(Version.create("1.0"), key.getVersion()); 57 } 58 59 @Test testDeserializeEmptyIdentifier()60 public void testDeserializeEmptyIdentifier() { 61 IArtifactKey key = ArtifactKey.parse("classifier,,1.0.0"); 62 assertNotNull(key); 63 assertEquals("classifier", key.getClassifier()); 64 assertEquals("", key.getId()); 65 assertEquals(Version.create("1.0"), key.getVersion()); 66 } 67 68 @Test testDeserializeEmptyVersion()69 public void testDeserializeEmptyVersion() { 70 IArtifactKey key = ArtifactKey.parse("classifier,identifier,"); 71 assertNotNull(key); 72 assertEquals("classifier", key.getClassifier()); 73 assertEquals("identifier", key.getId()); 74 assertEquals(Version.create("0.0"), key.getVersion()); 75 } 76 77 @Test testDeserializeEmptyEverything()78 public void testDeserializeEmptyEverything() { 79 IArtifactKey key = ArtifactKey.parse(",,"); 80 assertNotNull(key); 81 assertEquals("", key.getClassifier()); 82 assertEquals("", key.getId()); 83 assertEquals(Version.create("0.0"), key.getVersion()); 84 } 85 86 @Test testDeserializeTooFewPartsI()87 public void testDeserializeTooFewPartsI() { 88 assertThrows(IllegalArgumentException.class, () -> ArtifactKey.parse("")); 89 } 90 91 @Test testDeserializeTooManyPartsI()92 public void testDeserializeTooManyPartsI() { 93 assertThrows(IllegalArgumentException.class, () -> ArtifactKey.parse(",,,,")); 94 } 95 96 @Test testDeserializeTooFewPartsII()97 public void testDeserializeTooFewPartsII() { 98 assertThrows(IllegalArgumentException.class, () -> ArtifactKey.parse("classifier")); 99 } 100 } 101