Skip to content

Commit 58cfaf1

Browse files
committed
Unit Test require /v2/info mocking as well
1 parent 908e5f6 commit 58cfaf1

File tree

1 file changed

+37
-4
lines changed
  • cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/tokenprovider

1 file changed

+37
-4
lines changed

cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/tokenprovider/MockUaaServer.java

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,23 @@ public void shutdown() throws IOException {
8888
mockWebServer.shutdown();
8989
}
9090

91-
private MockResponse handleTokenRequest(final RecordedRequest request) throws IOException {
91+
private MockResponse handleRequest(final RecordedRequest request) throws IOException {
9292
requestCount.incrementAndGet();
9393

94-
if (!"/oauth/token".equals(request.getPath())) {
94+
final String path = request.getPath();
95+
LOGGER.debug("Received request: {} {}", request.getMethod(), path);
96+
97+
if ("/v2/info".equals(path)) {
98+
return handleInfoRequest();
99+
} else if ("/oauth/token".equals(path)) {
100+
return handleTokenRequest(request);
101+
} else {
102+
LOGGER.debug("Unknown path requested: {}", path);
95103
return new MockResponse().setResponseCode(404);
96104
}
97-
105+
}
106+
107+
private MockResponse handleTokenRequest(final RecordedRequest request) throws IOException {
98108
final String requestBody = request.getBody().readUtf8();
99109
LOGGER.debug("Received token request: {}", requestBody);
100110

@@ -107,6 +117,29 @@ private MockResponse handleTokenRequest(final RecordedRequest request) throws IO
107117
return handlePrimaryTokenRequest();
108118
}
109119

120+
private MockResponse handleInfoRequest() throws IOException {
121+
LOGGER.debug("Handling /v2/info request");
122+
123+
final Map<String, Object> infoResponse = new HashMap<>();
124+
infoResponse.put("authorization_endpoint", getBaseUrl().replaceAll("/$", ""));
125+
infoResponse.put("token_endpoint", getBaseUrl().replaceAll("/$", ""));
126+
infoResponse.put("app_ssh_endpoint", "ssh.localhost:2222");
127+
infoResponse.put("app_ssh_host_key_fingerprint", "test-fingerprint");
128+
infoResponse.put("api_version", "2.165.0");
129+
infoResponse.put("name", "test-cf");
130+
infoResponse.put("build", "test-build");
131+
infoResponse.put("version", 0);
132+
infoResponse.put("description", "Unit Test Cloud Foundry");
133+
134+
final String responseBody = objectMapper.writeValueAsString(infoResponse);
135+
LOGGER.debug("Generated info response: {}", responseBody);
136+
137+
return new MockResponse()
138+
.setResponseCode(200)
139+
.setHeader("Content-Type", "application/json")
140+
.setBody(responseBody);
141+
}
142+
110143
/* Warning! synchronized is really necessary here to ensure no concurrent threads are trying to run into a refresh token handling! */
111144
private synchronized MockResponse handleRefreshTokenRequest(final String requestBody) throws IOException {
112145
// Check if we should fail requests
@@ -189,7 +222,7 @@ private class TokenRequestDispatcher extends Dispatcher {
189222
@Override
190223
public MockResponse dispatch(final RecordedRequest request) {
191224
try {
192-
return handleTokenRequest(request);
225+
return handleRequest(request);
193226
} catch (final Exception e) {
194227
LOGGER.error("Error handling request", e);
195228
return new MockResponse().setResponseCode(500);

0 commit comments

Comments
 (0)