Skip to content

Commit c2a6ee7

Browse files
committed
Use Mock Server for resolveDependencyWhenCustomRepository
Closes gh-102
1 parent 9beac77 commit c2a6ee7

File tree

5 files changed

+54
-12
lines changed

5 files changed

+54
-12
lines changed

example-api-1.0.0-SNAPSHOT.pom

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5+
http://maven.apache.org/xsd/maven-4.0.0.xsd">
6+
<modelVersion>4.0.0</modelVersion>
7+
8+
<groupId>org.example</groupId>
9+
<artifactId>exampe-api</artifactId>
10+
<version>1.0.0-SNAPSHOT</version>
11+
</project>
12+

spring-boot-testjars-maven/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ dependencies {
4040
api "org.apache.maven.resolver:maven-resolver-transport-http:${mavenResolverVersion}"
4141
api "org.apache.maven.resolver:maven-resolver-supplier:${mavenResolverVersion}"
4242
testImplementation 'org.springframework.boot:spring-boot-starter-test'
43+
testImplementation 'org.springframework.boot:spring-boot-starter-web'
4344
testImplementation 'org.springframework:spring-web'
4445
}
4546

spring-boot-testjars-maven/src/test/java/org/springframework/experimental/boot/server/exec/MavenClasspathEntryTests.java

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,14 @@
2222
import java.util.Optional;
2323

2424
import org.eclipse.aether.repository.RemoteRepository;
25+
import org.junit.jupiter.api.Nested;
2526
import org.junit.jupiter.api.Test;
2627

2728
import org.springframework.boot.SpringBootVersion;
29+
import org.springframework.boot.test.context.SpringBootTest;
30+
import org.springframework.boot.test.web.server.LocalServerPort;
31+
import org.springframework.experimental.boot.server.exec.imports.GenericSpringBootApplicationMain;
32+
import org.springframework.test.context.TestPropertySource;
2833

2934
import static org.assertj.core.api.Assertions.assertThat;
3035
import static org.assertj.core.api.Assertions.assertThatNoException;
@@ -98,18 +103,6 @@ void jdk() {
98103
// + configServerPartialPath)
99104
}
100105

101-
@Test
102-
void resolveDependencyWhenCustomRepository() {
103-
List<RemoteRepository> repositories = new ArrayList<>();
104-
repositories.add(
105-
new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2/").build());
106-
repositories.add(new RemoteRepository.Builder("sonatype-snapshot", "default",
107-
"https://oss.sonatype.org/content/repositories/snapshots/").build());
108-
MavenClasspathEntry classpathEntry = new MavenClasspathEntry("org.junit:junit5-api:5.0.0-SNAPSHOT",
109-
repositories);
110-
assertThatNoException().isThrownBy(() -> classpathEntry.resolve());
111-
}
112-
113106
@Test
114107
void resolveDependencyWhenOrgSpringframeworkSnapshotThenDoesNotRequireCustomRepository() {
115108
MavenClasspathEntry classpathEntry = new MavenClasspathEntry("org.springframework:spring-core:6.2.0-SNAPSHOT");
@@ -128,4 +121,28 @@ void resolveDependencyWhenOrgSpringframeworkM1ThenDoesNotRequireCustomRepository
128121
assertThatNoException().isThrownBy(() -> classpathEntry.resolve());
129122
}
130123

124+
@Nested
125+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
126+
classes = GenericSpringBootApplicationMain.class)
127+
@TestPropertySource(
128+
properties = "spring.web.resources.static-locations=classpath:/org/springframework/experimental/boot/server/exec/repo-root/")
129+
class MockRepositoryTests {
130+
131+
@LocalServerPort
132+
int port;
133+
134+
@Test
135+
void resolveDependencyWhenCustomRepository() {
136+
List<RemoteRepository> repositories = new ArrayList<>();
137+
repositories.add(new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2/")
138+
.build());
139+
repositories
140+
.add(new RemoteRepository.Builder("custom", "default", "http://localhost:" + this.port).build());
141+
MavenClasspathEntry classpathEntry = new MavenClasspathEntry("org.example:example-api:1.0.0-SNAPSHOT",
142+
repositories);
143+
assertThatNoException().isThrownBy(() -> classpathEntry.resolve());
144+
}
145+
146+
}
147+
131148
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mock jar
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.example</groupId>
7+
<artifactId>example-api</artifactId>
8+
<version>1.0.0-SNAPSHOT</version>
9+
<packaging>pom</packaging>
10+
11+
</project>

0 commit comments

Comments
 (0)