Skip to content

Commit f53c1af

Browse files
committed
Added test cases for supporting Nexus based maven metadata
1 parent c832f5b commit f53c1af

File tree

3 files changed

+78
-6
lines changed

3 files changed

+78
-6
lines changed

swagger-brake/src/main/java/io/redskap/swagger/brake/maven/maven2/LatestArtifactVersionResolver.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,27 @@ String resolve(DownloadOptions options) {
1717
String metadataUrl = urlFactory.createLatestArtifactVersionMetadataUrl(options);
1818
MavenMetadata mavenMetadata = metadataDownloader.download(requestFactory.create(metadataUrl, options));
1919
MavenVersioning versioning = mavenMetadata.getVersioning();
20-
21-
return versioning.getRelease() != null ? versioning.getRelease() : versioning.getLatest();
20+
String version = resolveStandardVersioning(versioning);
21+
if (version == null) {
22+
version = resolveNexusVersioning(versioning);
23+
}
24+
if (version == null) {
25+
throw new IllegalStateException("No version has been found for the metadata");
26+
}
27+
return version;
28+
}
29+
30+
private String resolveStandardVersioning(MavenVersioning versioning) {
31+
if (versioning != null && versioning.getLatest() != null) {
32+
return versioning.getLatest();
33+
}
34+
return null;
35+
}
36+
37+
private String resolveNexusVersioning(MavenVersioning versioning) {
38+
if (versioning != null && versioning.getRelease() != null) {
39+
return versioning.getRelease();
40+
}
41+
return null;
2242
}
2343
}

swagger-brake/src/test/java/io/redskap/swagger/brake/maven/maven2/LatestArtifactNameResolverTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public void testResolveSnapshotShouldWorkProperly() {
3838
String latestBuildNumber = "2";
3939
String expected = "swagger-brake-example-1.2.0-20181118.221312-2";
4040
MavenMetadata mavenMetadata = new MavenMetadata("groupId", artifactId,
41-
new MavenVersioning(expected, new MavenSnapshot(latestTimestamp, latestBuildNumber)));
41+
new MavenVersioning(expected, null, new MavenSnapshot(latestTimestamp, latestBuildNumber)));
4242

4343
String metadataUrl = "url";
4444
DownloadOptions options = mock(DownloadOptions.class);

swagger-brake/src/test/java/io/redskap/swagger/brake/maven/maven2/LatestArtifactVersionResolverTest.java

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,64 @@ public class LatestArtifactVersionResolverTest {
2828
@InjectMocks
2929
private LatestArtifactVersionResolver underTest;
3030

31+
32+
@Test(expected = IllegalStateException.class)
33+
public void testResolveShouldThrowExceptionWhenNoVersionCanBeResolved() {
34+
// given
35+
MavenMetadata mavenMetadata = new MavenMetadata("groupId", "artifactId", new MavenVersioning(null, null, null));
36+
37+
String metadataUrl = "url";
38+
DownloadOptions options = mock(DownloadOptions.class);
39+
HttpUriRequest metadataRequest = mock(HttpUriRequest.class);
40+
given(urlFactory.createLatestArtifactVersionMetadataUrl(options)).willReturn(metadataUrl);
41+
given(requestFactory.create(metadataUrl, options)).willReturn(metadataRequest);
42+
given(metadataDownloader.download(metadataRequest)).willReturn(mavenMetadata);
43+
// when
44+
underTest.resolve(options);
45+
// then exception thrown
46+
}
47+
48+
@Test
49+
public void testResolveShouldWorkProperlyForStandard() {
50+
// given
51+
String expected = "latest";
52+
MavenMetadata mavenMetadata = new MavenMetadata("groupId", "artifactId", new MavenVersioning(expected, null, null));
53+
54+
String metadataUrl = "url";
55+
DownloadOptions options = mock(DownloadOptions.class);
56+
HttpUriRequest metadataRequest = mock(HttpUriRequest.class);
57+
given(urlFactory.createLatestArtifactVersionMetadataUrl(options)).willReturn(metadataUrl);
58+
given(requestFactory.create(metadataUrl, options)).willReturn(metadataRequest);
59+
given(metadataDownloader.download(metadataRequest)).willReturn(mavenMetadata);
60+
// when
61+
String result = underTest.resolve(options);
62+
// then
63+
assertThat(result).isEqualTo(expected);
64+
}
65+
66+
@Test
67+
public void testResolveShouldWorkProperlyForNexus() {
68+
// given
69+
String expected = "latest";
70+
MavenMetadata mavenMetadata = new MavenMetadata("groupId", "artifactId", new MavenVersioning(null, expected, null));
71+
72+
String metadataUrl = "url";
73+
DownloadOptions options = mock(DownloadOptions.class);
74+
HttpUriRequest metadataRequest = mock(HttpUriRequest.class);
75+
given(urlFactory.createLatestArtifactVersionMetadataUrl(options)).willReturn(metadataUrl);
76+
given(requestFactory.create(metadataUrl, options)).willReturn(metadataRequest);
77+
given(metadataDownloader.download(metadataRequest)).willReturn(mavenMetadata);
78+
// when
79+
String result = underTest.resolve(options);
80+
// then
81+
assertThat(result).isEqualTo(expected);
82+
}
83+
3184
@Test
32-
public void testResolveShouldWorkProperly() {
85+
public void testResolveShouldPreferStandardVersioningWhenStandardAndNexusSpecificIsPresent() {
3386
// given
3487
String expected = "latest";
35-
MavenMetadata mavenMetadata = new MavenMetadata("groupId", "artifactId",
36-
new MavenVersioning(expected, null));
88+
MavenMetadata mavenMetadata = new MavenMetadata("groupId", "artifactId", new MavenVersioning(expected, "nexus", null));
3789

3890
String metadataUrl = "url";
3991
DownloadOptions options = mock(DownloadOptions.class);

0 commit comments

Comments
 (0)