001package org.eclipse.aether.artifact; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import static org.junit.Assert.*; 023 024import java.io.File; 025import java.util.Collections; 026import java.util.HashMap; 027import java.util.Map; 028 029import org.eclipse.aether.artifact.Artifact; 030import org.eclipse.aether.artifact.ArtifactProperties; 031import org.eclipse.aether.artifact.DefaultArtifact; 032import org.junit.Test; 033 034/** 035 */ 036public class DefaultArtifactTest 037{ 038 039 @Test 040 public void testDefaultArtifactString() 041 { 042 Artifact a; 043 044 a = new DefaultArtifact( "gid:aid:ver" ); 045 assertEquals( "gid", a.getGroupId() ); 046 assertEquals( "aid", a.getArtifactId() ); 047 assertEquals( "ver", a.getVersion() ); 048 assertEquals( "ver", a.getBaseVersion() ); 049 assertEquals( "jar", a.getExtension() ); 050 assertEquals( "", a.getClassifier() ); 051 052 a = new DefaultArtifact( "gid:aid:ext:ver" ); 053 assertEquals( "gid", a.getGroupId() ); 054 assertEquals( "aid", a.getArtifactId() ); 055 assertEquals( "ver", a.getVersion() ); 056 assertEquals( "ver", a.getBaseVersion() ); 057 assertEquals( "ext", a.getExtension() ); 058 assertEquals( "", a.getClassifier() ); 059 060 a = new DefaultArtifact( "org.gid:foo-bar:jar:1.1-20101116.150650-3" ); 061 assertEquals( "org.gid", a.getGroupId() ); 062 assertEquals( "foo-bar", a.getArtifactId() ); 063 assertEquals( "1.1-20101116.150650-3", a.getVersion() ); 064 assertEquals( "1.1-SNAPSHOT", a.getBaseVersion() ); 065 assertEquals( "jar", a.getExtension() ); 066 assertEquals( "", a.getClassifier() ); 067 068 a = new DefaultArtifact( "gid:aid:ext:cls:ver" ); 069 assertEquals( "gid", a.getGroupId() ); 070 assertEquals( "aid", a.getArtifactId() ); 071 assertEquals( "ver", a.getVersion() ); 072 assertEquals( "ver", a.getBaseVersion() ); 073 assertEquals( "ext", a.getExtension() ); 074 assertEquals( "cls", a.getClassifier() ); 075 076 a = new DefaultArtifact( "gid:aid::cls:ver" ); 077 assertEquals( "gid", a.getGroupId() ); 078 assertEquals( "aid", a.getArtifactId() ); 079 assertEquals( "ver", a.getVersion() ); 080 assertEquals( "ver", a.getBaseVersion() ); 081 assertEquals( "jar", a.getExtension() ); 082 assertEquals( "cls", a.getClassifier() ); 083 084 a = new DefaultArtifact( new DefaultArtifact( "gid:aid:ext:cls:ver" ).toString() ); 085 assertEquals( "gid", a.getGroupId() ); 086 assertEquals( "aid", a.getArtifactId() ); 087 assertEquals( "ver", a.getVersion() ); 088 assertEquals( "ver", a.getBaseVersion() ); 089 assertEquals( "ext", a.getExtension() ); 090 assertEquals( "cls", a.getClassifier() ); 091 } 092 093 @Test( expected = IllegalArgumentException.class ) 094 public void testDefaultArtifactBadString() 095 { 096 new DefaultArtifact( "gid:aid" ); 097 } 098 099 @Test 100 public void testImmutability() 101 { 102 Artifact a = new DefaultArtifact( "gid:aid:ext:cls:ver" ); 103 assertNotSame( a, a.setFile( new File( "file" ) ) ); 104 assertNotSame( a, a.setVersion( "otherVersion" ) ); 105 assertNotSame( a, a.setProperties( Collections.singletonMap( "key", "value" ) ) ); 106 } 107 108 @Test 109 public void testArtifactType() 110 { 111 DefaultArtifactType type = new DefaultArtifactType( "typeId", "typeExt", "typeCls", "typeLang", true, true ); 112 113 Artifact a = new DefaultArtifact( "gid", "aid", null, null, null, null, type ); 114 assertEquals( "typeExt", a.getExtension() ); 115 assertEquals( "typeCls", a.getClassifier() ); 116 assertEquals( "typeLang", a.getProperties().get( ArtifactProperties.LANGUAGE ) ); 117 assertEquals( "typeId", a.getProperties().get( ArtifactProperties.TYPE ) ); 118 assertEquals( "true", a.getProperties().get( ArtifactProperties.INCLUDES_DEPENDENCIES ) ); 119 assertEquals( "true", a.getProperties().get( ArtifactProperties.CONSTITUTES_BUILD_PATH ) ); 120 121 a = new DefaultArtifact( "gid", "aid", "cls", "ext", "ver", null, type ); 122 assertEquals( "ext", a.getExtension() ); 123 assertEquals( "cls", a.getClassifier() ); 124 assertEquals( "typeLang", a.getProperties().get( ArtifactProperties.LANGUAGE ) ); 125 assertEquals( "typeId", a.getProperties().get( ArtifactProperties.TYPE ) ); 126 assertEquals( "true", a.getProperties().get( ArtifactProperties.INCLUDES_DEPENDENCIES ) ); 127 assertEquals( "true", a.getProperties().get( ArtifactProperties.CONSTITUTES_BUILD_PATH ) ); 128 129 Map<String, String> props = new HashMap<String, String>(); 130 props.put( "someNonStandardProperty", "someNonStandardProperty" ); 131 a = new DefaultArtifact( "gid", "aid", "cls", "ext", "ver", props, type ); 132 assertEquals( "ext", a.getExtension() ); 133 assertEquals( "cls", a.getClassifier() ); 134 assertEquals( "typeLang", a.getProperties().get( ArtifactProperties.LANGUAGE ) ); 135 assertEquals( "typeId", a.getProperties().get( ArtifactProperties.TYPE ) ); 136 assertEquals( "true", a.getProperties().get( ArtifactProperties.INCLUDES_DEPENDENCIES ) ); 137 assertEquals( "true", a.getProperties().get( ArtifactProperties.CONSTITUTES_BUILD_PATH ) ); 138 assertEquals( "someNonStandardProperty", a.getProperties().get( "someNonStandardProperty" ) ); 139 140 props = new HashMap<String, String>(); 141 props.put( "someNonStandardProperty", "someNonStandardProperty" ); 142 props.put( ArtifactProperties.CONSTITUTES_BUILD_PATH, "rubbish" ); 143 props.put( ArtifactProperties.INCLUDES_DEPENDENCIES, "rubbish" ); 144 a = new DefaultArtifact( "gid", "aid", "cls", "ext", "ver", props, type ); 145 assertEquals( "ext", a.getExtension() ); 146 assertEquals( "cls", a.getClassifier() ); 147 assertEquals( "typeLang", a.getProperties().get( ArtifactProperties.LANGUAGE ) ); 148 assertEquals( "typeId", a.getProperties().get( ArtifactProperties.TYPE ) ); 149 assertEquals( "rubbish", a.getProperties().get( ArtifactProperties.INCLUDES_DEPENDENCIES ) ); 150 assertEquals( "rubbish", a.getProperties().get( ArtifactProperties.CONSTITUTES_BUILD_PATH ) ); 151 assertEquals( "someNonStandardProperty", a.getProperties().get( "someNonStandardProperty" ) ); 152 } 153 154 @Test 155 public void testPropertiesCopied() 156 { 157 Map<String, String> props = new HashMap<String, String>(); 158 props.put( "key", "value1" ); 159 160 Artifact a = new DefaultArtifact( "gid:aid:1", props ); 161 assertEquals( "value1", a.getProperty( "key", null ) ); 162 props.clear(); 163 assertEquals( "value1", a.getProperty( "key", null ) ); 164 165 props.put( "key", "value2" ); 166 a = a.setProperties( props ); 167 assertEquals( "value2", a.getProperty( "key", null ) ); 168 props.clear(); 169 assertEquals( "value2", a.getProperty( "key", null ) ); 170 } 171 172 @Test 173 public void testIsSnapshot() 174 { 175 Artifact a = new DefaultArtifact( "gid:aid:ext:cls:1.0" ); 176 assertFalse( a.getVersion(), a.isSnapshot() ); 177 178 a = new DefaultArtifact( "gid:aid:ext:cls:1.0-SNAPSHOT" ); 179 assertTrue( a.getVersion(), a.isSnapshot() ); 180 181 a = new DefaultArtifact( "gid:aid:ext:cls:1.0-20101116.150650-3" ); 182 assertTrue( a.getVersion(), a.isSnapshot() ); 183 184 a = new DefaultArtifact( "gid:aid:ext:cls:1.0-20101116x150650-3" ); 185 assertFalse( a.getVersion(), a.isSnapshot() ); 186 } 187 188}