Skip to content

Commit c9d4237

Browse files
committed
Fix unit tests
1 parent e5f8b53 commit c9d4237

File tree

3 files changed

+29
-26
lines changed

3 files changed

+29
-26
lines changed

msal4j-sdk/src/main/java/com/microsoft/aad/msal4j/MsalServiceExceptionFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ static MsalServiceException fromHttpResponse(IHttpResponse response) {
2626
responseBody,
2727
ErrorResponse.class);
2828

29+
if (errorResponse.error() != null &&
30+
errorResponse.error().equalsIgnoreCase(AuthenticationErrorCode.INVALID_GRANT) && isInteractionRequired(errorResponse.subError)) {
31+
return new MsalInteractionRequiredException(errorResponse, response.headers());
32+
}
33+
34+
2935
if (!StringHelper.isBlank(errorResponse.error()) && !StringHelper.isBlank(errorResponse.errorDescription)) {
3036

3137
errorResponse.statusCode(response.statusCode());

msal4j-sdk/src/test/java/com/microsoft/aad/msal4j/CacheFormatTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package com.microsoft.aad.msal4j;
55

66
import com.nimbusds.oauth2.sdk.ParseException;
7-
import com.nimbusds.oauth2.sdk.http.HTTPResponse;
87
import com.nimbusds.oauth2.sdk.util.JSONObjectUtils;
98
import net.minidev.json.JSONObject;
109
import org.json.JSONException;
@@ -154,12 +153,12 @@ public void tokenCacheEntitiesFormatTest(String folder) throws URISyntaxExceptio
154153
TokenRequestExecutor request = spy(new TokenRequestExecutor(
155154
new AADAuthority(new URL(AUTHORIZE_REQUEST_URL)), msalRequest, serviceBundle));
156155
OAuthHttpRequest msalOAuthHttpRequest = mock(OAuthHttpRequest.class);
157-
HTTPResponse httpResponse = mock(HTTPResponse.class);
156+
HttpResponse httpResponse = mock(HttpResponse.class);
158157

159158
doReturn(msalOAuthHttpRequest).when(request).createOauthHttpRequest();
160159
doReturn(httpResponse).when(msalOAuthHttpRequest).send();
161-
doReturn(200).when(httpResponse).getStatusCode();
162-
doReturn(JSONObjectUtils.parse(tokenResponse)).when(httpResponse).getContentAsJSONObject();
160+
doReturn(200).when(httpResponse).statusCode();
161+
doReturn(JSONObjectUtils.parse(tokenResponse)).when(httpResponse).getBodyAsJson();
163162

164163
final AuthenticationResult result = request.executeTokenRequest();
165164

msal4j-sdk/src/test/java/com/microsoft/aad/msal4j/TokenRequestExecutorTest.java

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import com.nimbusds.oauth2.sdk.ParseException;
77
import com.nimbusds.oauth2.sdk.SerializeException;
8-
import com.nimbusds.oauth2.sdk.http.HTTPResponse;
98
import com.nimbusds.oauth2.sdk.util.JSONObjectUtils;
109
import org.junit.jupiter.api.Test;
1110
import org.junit.jupiter.api.TestInstance;
@@ -43,7 +42,8 @@ void executeOAuthRequest_SCBadRequestErrorInvalidGrant_InteractionRequiredExcept
4342

4443
OAuthHttpRequest msalOAuthHttpRequest = mock(OAuthHttpRequest.class);
4544

46-
HTTPResponse httpResponse = new HTTPResponse(HTTPResponse.SC_BAD_REQUEST);
45+
HttpResponse httpResponse = new HttpResponse();
46+
httpResponse.statusCode(HttpHelper.HTTP_STATUS_400);
4747

4848
String claims = "{\\\"access_token\\\":{\\\"polids\\\":{\\\"essential\\\":true,\\\"values\\\":[\\\"5ce770ea-8690-4747-aa73-c5b3cd509cd4\\\"]}}}";
4949

@@ -55,8 +55,8 @@ void executeOAuthRequest_SCBadRequestErrorInvalidGrant_InteractionRequiredExcept
5555
"\"correlation_id\":\"3a...95a\"," +
5656
"\"suberror\":\"basic_action\"," +
5757
"\"claims\":\"" + claims + "\"}";
58-
httpResponse.setContent(content);
59-
httpResponse.setContentType(HTTPContentType.ApplicationJSON.contentType);
58+
httpResponse.body(content);
59+
httpResponse.addHeader("Content-Type", HTTPContentType.ApplicationJSON.contentType);
6060

6161
doReturn(msalOAuthHttpRequest).when(request).createOauthHttpRequest();
6262
doReturn(httpResponse).when(msalOAuthHttpRequest).send();
@@ -79,7 +79,8 @@ void executeOAuthRequest_SCBadRequestErrorInvalidGrant_SubErrorFilteredServiceEx
7979

8080
OAuthHttpRequest msalOAuthHttpRequest = mock(OAuthHttpRequest.class);
8181

82-
HTTPResponse httpResponse = new HTTPResponse(HTTPResponse.SC_BAD_REQUEST);
82+
HttpResponse httpResponse = new HttpResponse();
83+
httpResponse.statusCode(HttpHelper.HTTP_STATUS_400);
8384

8485
String claims = "{\\\"access_token\\\":{\\\"polids\\\":{\\\"essential\\\":true,\\\"values\\\":[\\\"5ce770ea-8690-4747-aa73-c5b3cd509cd4\\\"]}}}";
8586

@@ -91,8 +92,8 @@ void executeOAuthRequest_SCBadRequestErrorInvalidGrant_SubErrorFilteredServiceEx
9192
"\"correlation_id\":\"3a...95a\"," +
9293
"\"suberror\":\"client_mismatch\"," +
9394
"\"claims\":\"" + claims + "\"}";
94-
httpResponse.setContent(content);
95-
httpResponse.setContentType(HTTPContentType.ApplicationJSON.contentType);
95+
httpResponse.body(content);
96+
httpResponse.addHeader("Content-Type", HTTPContentType.ApplicationJSON.contentType);
9697

9798
doReturn(msalOAuthHttpRequest).when(request).createOauthHttpRequest();
9899
doReturn(httpResponse).when(msalOAuthHttpRequest).send();
@@ -181,7 +182,7 @@ void testToOAuthRequestNonEmptyCorrelationId()
181182
@Test
182183
void testToOAuthRequestNullCorrelationId_NullClientAuth()
183184
throws MalformedURLException, SerializeException,
184-
URISyntaxException, ParseException {
185+
URISyntaxException {
185186

186187
PublicClientApplication app = PublicClientApplication.builder("id").correlationId("corr-id").build();
187188

@@ -230,15 +231,13 @@ void testExecuteOAuth_Success() throws SerializeException, ParseException, MsalE
230231

231232
final OAuthHttpRequest msalOAuthHttpRequest = mock(OAuthHttpRequest.class);
232233

233-
final HTTPResponse httpResponse = mock(HTTPResponse.class);
234+
final HttpResponse httpResponse = mock(HttpResponse.class);
234235

235236
doReturn(msalOAuthHttpRequest).when(request).createOauthHttpRequest();
236237
doReturn(httpResponse).when(msalOAuthHttpRequest).send();
237-
doReturn(JSONObjectUtils.parse(TestConfiguration.TOKEN_ENDPOINT_OK_RESPONSE)).when(httpResponse).getContentAsJSONObject();
238-
239-
httpResponse.ensureStatusCode(200);
238+
doReturn(JSONObjectUtils.parse(TestConfiguration.TOKEN_ENDPOINT_OK_RESPONSE)).when(httpResponse).getBodyAsJson();
240239

241-
doReturn(200).when(httpResponse).getStatusCode();
240+
doReturn(200).when(httpResponse).statusCode();
242241

243242
final AuthenticationResult result = request.executeTokenRequest();
244243

@@ -275,22 +274,21 @@ void testExecuteOAuth_Failure() throws SerializeException,
275274
new AADAuthority(new URL(TestConstants.ORGANIZATIONS_AUTHORITY)), acr, serviceBundle));
276275
final OAuthHttpRequest msalOAuthHttpRequest = mock(OAuthHttpRequest.class);
277276

278-
final HTTPResponse httpResponse = mock(HTTPResponse.class);
277+
final HttpResponse httpResponse = mock(HttpResponse.class);
279278

280279
doReturn(msalOAuthHttpRequest).when(request).createOauthHttpRequest();
281280
doReturn(httpResponse).when(msalOAuthHttpRequest).send();
282-
lenient().doReturn(402).when(httpResponse).getStatusCode();
283-
doReturn("403 Forbidden").when(httpResponse).getStatusMessage();
284-
doReturn(new HashMap<>()).when(httpResponse).getHeaderMap();
285-
doReturn(TestConfiguration.HTTP_ERROR_RESPONSE).when(httpResponse).getContent();
281+
lenient().doReturn(402).when(httpResponse).statusCode();
282+
doReturn(new HashMap<>()).when(httpResponse).headers();
283+
doReturn(TestConfiguration.HTTP_ERROR_RESPONSE).when(httpResponse).body();
286284

287285
final ErrorResponse errorResponse = mock(ErrorResponse.class);
288286

289287
lenient().doReturn("invalid_request").when(errorResponse).error();
290-
lenient().doReturn(null).when(httpResponse).getHeaderValue("User-Agent");
291-
lenient().doReturn(null).when(httpResponse).getHeaderValue("x-ms-request-id");
292-
lenient().doReturn(null).when(httpResponse).getHeaderValue("x-ms-clitelem");
293-
doReturn(402).when(httpResponse).getStatusCode();
288+
lenient().doReturn(null).when(httpResponse).getHeader("User-Agent");
289+
lenient().doReturn(null).when(httpResponse).getHeader("x-ms-request-id");
290+
lenient().doReturn(null).when(httpResponse).getHeader("x-ms-clitelem");
291+
doReturn(402).when(httpResponse).statusCode();
294292

295293
assertThrows(MsalException.class, request::executeTokenRequest);
296294
}

0 commit comments

Comments
 (0)