1 package org.apache.maven.archiva.repository.content;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23
24
25
26
27
28
29 public class FilenameParserTest
30 extends TestCase
31 {
32 public void testNameExtensionJar()
33 {
34 FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" );
35
36 assertEquals( "maven-test-plugin-1.8.3", parser.getName() );
37 assertEquals( "jar", parser.getExtension() );
38 }
39
40 public void testNameExtensionTarGz()
41 {
42 FilenameParser parser = new FilenameParser( "archiva-1.0-beta-2-bin.tar.gz" );
43
44 assertEquals( "archiva-1.0-beta-2-bin", parser.getName() );
45 assertEquals( "tar.gz", parser.getExtension() );
46 }
47
48 public void testNameExtensionTarBz2()
49 {
50 FilenameParser parser = new FilenameParser( "archiva-1.0-SNAPSHOT-src.tar.bz2" );
51
52 assertEquals( "archiva-1.0-SNAPSHOT-src", parser.getName() );
53 assertEquals( "tar.bz2", parser.getExtension() );
54 }
55
56 public void testNameExtensionCapitolizedTarGz()
57 {
58 FilenameParser parser = new FilenameParser( "ARCHIVA-1.0-BETA-2-BIN.TAR.GZ" );
59
60 assertEquals( "ARCHIVA-1.0-BETA-2-BIN", parser.getName() );
61 assertEquals( "TAR.GZ", parser.getExtension() );
62 }
63
64 public void testNext()
65 {
66 FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" );
67
68 assertEquals( "maven-test-plugin-1.8.3", parser.getName() );
69 assertEquals( "jar", parser.getExtension() );
70
71 assertEquals( "maven", parser.next() );
72 assertEquals( "test", parser.next() );
73 assertEquals( "plugin", parser.next() );
74 assertEquals( "1.8.3", parser.next() );
75 assertNull( parser.next() );
76 }
77
78 public void testExpect()
79 {
80 FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" );
81
82 assertEquals( "maven-test-plugin-1.8.3", parser.getName() );
83 assertEquals( "jar", parser.getExtension() );
84
85 assertEquals( "maven-test-plugin", parser.expect( "maven-test-plugin" ) );
86 assertEquals( "1.8.3", parser.expect( "1.8.3" ) );
87 assertNull( parser.expect( "jar" ) );
88 }
89
90 public void testExpectWithRemaining()
91 {
92 FilenameParser parser = new FilenameParser( "ganymede-ssh2-build250-sources.jar" );
93
94 assertEquals( "ganymede-ssh2-build250-sources", parser.getName() );
95 assertEquals( "jar", parser.getExtension() );
96
97 assertEquals( "ganymede-ssh2", parser.expect( "ganymede-ssh2" ) );
98 assertEquals( "build250", parser.expect( "build250" ) );
99 assertEquals( '-', parser.seperator() );
100 assertEquals( "sources", parser.remaining() );
101
102 assertNull( parser.expect( "jar" ) );
103 }
104
105 public void testExpectWithRemainingDualExtensions()
106 {
107 FilenameParser parser = new FilenameParser( "example-presentation-3.2.xml.zip" );
108
109 assertEquals( "example-presentation-3.2.xml", parser.getName() );
110 assertEquals( "zip", parser.getExtension() );
111
112 assertEquals( "example-presentation", parser.expect( "example-presentation" ) );
113 assertEquals( "3.2", parser.expect( "3.2" ) );
114 assertEquals( '.', parser.seperator() );
115 assertEquals( "xml", parser.remaining() );
116
117 }
118
119 public void testNextNonVersion()
120 {
121 FilenameParser parser = new FilenameParser( "maven-test-plugin-1.8.3.jar" );
122
123 assertEquals( "maven-test-plugin", parser.nextNonVersion() );
124 assertEquals( "1.8.3", parser.remaining() );
125 }
126
127 public void testNextArbitraryNonVersion()
128 {
129 FilenameParser parser = new FilenameParser( "maven-jdk-1.4-plugin-1.0-20070828.123456-42.jar" );
130
131 assertEquals( "maven-jdk-1.4-plugin", parser.nextNonVersion() );
132 assertEquals( "1.0-20070828.123456-42", parser.remaining() );
133 }
134
135 public void testNextJython()
136 {
137 FilenameParser parser = new FilenameParser( "jython-20020827-no-oro.jar" );
138
139 assertEquals( "jython", parser.nextNonVersion() );
140 assertEquals( "20020827", parser.nextVersion() );
141 assertEquals( "no-oro", parser.remaining() );
142 }
143
144 public void testLongExtension()
145 {
146 FilenameParser parser = new FilenameParser( "libfobs4jmf-0.4.1.4-20080217.211715-4.jnilib" );
147
148 assertEquals( "libfobs4jmf-0.4.1.4-20080217.211715-4", parser.getName() );
149 assertEquals( "jnilib", parser.getExtension() );
150 }
151
152 public void testInterveningVersion()
153 {
154 FilenameParser parser = new FilenameParser( "artifact-id-1.0-abc-1.1-20080221.062205-9.pom" );
155
156 assertEquals( "artifact-id", parser.nextNonVersion() );
157 assertEquals( "1.0-abc-1.1-20080221.062205-9", parser.expect( "1.0-abc-1.1-SNAPSHOT" ) );
158 assertNull( null, parser.remaining() );
159 assertEquals( "artifact-id-1.0-abc-1.1-20080221.062205-9", parser.getName() );
160 assertEquals( "pom", parser.getExtension() );
161 }
162
163 public void testExpectWrongSnapshot()
164 {
165 FilenameParser parser = new FilenameParser( "artifact-id-1.0-20080221.062205-9.pom" );
166
167 assertEquals( "artifact-id", parser.nextNonVersion() );
168 assertNull( parser.expect( "2.0-SNAPSHOT" ) );
169 }
170
171 public void testExpectWrongSnapshot2()
172 {
173
174 FilenameParser parser = new FilenameParser( "axiom-20080221.062205-9.pom" );
175
176 assertEquals( "axiom", parser.nextNonVersion() );
177 assertNull( parser.expect( "SNAPSHOT" ) );
178 }
179
180 public void testClassifier()
181 {
182 FilenameParser parser = new FilenameParser( "artifact-id-1.0-20070219.171202-34-test-sources.jar" );
183
184 assertEquals( "artifact-id", parser.nextNonVersion() );
185 assertEquals( "1.0-20070219.171202-34", parser.nextVersion() );
186 assertEquals( "test-sources", parser.remaining() );
187 assertEquals( "artifact-id-1.0-20070219.171202-34-test-sources", parser.getName() );
188 assertEquals( "jar", parser.getExtension() );
189 }
190
191 public void testNoExtension()
192 {
193 FilenameParser parser = new FilenameParser( "foo_bar" );
194 assertNull( parser.getExtension() );
195 }
196 }