From 8013e9ee227a67d6aeeab2525564c9dca771595c Mon Sep 17 00:00:00 2001 From: Bharath Sekar Date: Thu, 28 Sep 2017 11:45:44 -0700 Subject: [PATCH] Zone switching tests and docs for GET mfa-provider [#151224730] https://www.pivotaltracker.com/story/show/151224730 --- .../MfaProviderEndpointsDocs.java | 15 ++++++-- .../MfaProviderEndpointsMockMvcTests.java | 37 +++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsDocs.java b/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsDocs.java index f1e082e11fc..a6989d1bde5 100644 --- a/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsDocs.java +++ b/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsDocs.java @@ -15,22 +15,31 @@ import org.springframework.restdocs.headers.HeaderDescriptor; import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; import org.springframework.restdocs.payload.FieldDescriptor; +import org.springframework.restdocs.request.ParameterDescriptor; +import org.springframework.restdocs.request.RequestDocumentation; import org.springframework.restdocs.snippet.Snippet; import org.springframework.security.oauth2.common.util.RandomValueStringGenerator; import org.springframework.test.web.servlet.ResultActions; import static org.cloudfoundry.identity.uaa.mfa_provider.MfaProvider.MfaProviderType.GOOGLE_AUTHENTICATOR; -import static org.cloudfoundry.identity.uaa.test.SnippetUtils.*; +import static org.cloudfoundry.identity.uaa.test.SnippetUtils.fieldWithPath; +import static org.cloudfoundry.identity.uaa.test.SnippetUtils.parameterWithName; +import static org.cloudfoundry.identity.uaa.test.SnippetUtils.subFields; import static org.cloudfoundry.identity.uaa.util.JsonUtils.serializeExcludingProperties; import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName; import static org.springframework.restdocs.headers.HeaderDocumentation.requestHeaders; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.*; -import static org.springframework.restdocs.payload.JsonFieldType.*; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; +import static org.springframework.restdocs.payload.JsonFieldType.BOOLEAN; +import static org.springframework.restdocs.payload.JsonFieldType.NUMBER; +import static org.springframework.restdocs.payload.JsonFieldType.STRING; import static org.springframework.restdocs.payload.PayloadDocumentation.requestFields; import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields; import static org.springframework.restdocs.request.RequestDocumentation.pathParameters; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; diff --git a/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsMockMvcTests.java b/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsMockMvcTests.java index 5cff617cce2..157be593f1a 100644 --- a/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsMockMvcTests.java +++ b/uaa/src/test/java/org/cloudfoundry/identity/uaa/mock/mfa_provider/MfaProviderEndpointsMockMvcTests.java @@ -94,6 +94,43 @@ public void testRetrieveMfaProviderById() throws Exception { Assert.assertEquals(JsonUtils.writeValueAsString(createdProvider), result.getResponse().getContentAsString()); } + @Test + public void testCreateMfaForOtherZone() throws Exception{ + IdentityZone identityZone = MockMvcUtils.utils().createZoneUsingWebRequest(getMockMvc(), adminToken); + + MfaProvider mfaProvider = constructGoogleProvider(); + MvcResult mfaResponse = getMockMvc().perform( + post("/mfa-providers") + .header("Authorization", "Bearer " + adminToken) + .header(IdentityZoneSwitchingFilter.HEADER, identityZone.getId()) + .contentType(APPLICATION_JSON) + .content(JsonUtils.writeValueAsString(mfaProvider))).andReturn(); + Assert.assertEquals(HttpStatus.CREATED.value(), mfaResponse.getResponse().getStatus()); + } + + @Test + public void testGetMfaInOtherZone() throws Exception{ + IdentityZone identityZone = MockMvcUtils.utils().createZoneUsingWebRequest(getMockMvc(), adminToken); + + MfaProvider mfaProvider = constructGoogleProvider(); + MvcResult createResult = getMockMvc().perform( + post("/mfa-providers") + .header("Authorization", "Bearer " + adminToken) + .header(IdentityZoneSwitchingFilter.HEADER, identityZone.getId()) + .contentType(APPLICATION_JSON) + .content(JsonUtils.writeValueAsString(mfaProvider))).andReturn(); + mfaProvider = JsonUtils.readValue(createResult.getResponse().getContentAsString(), MfaProvider.class); + + + MvcResult mfaListResult = getMockMvc().perform( + get("/mfa-providers") + .header("Authorization", "Bearer " + adminToken) + .header(IdentityZoneSwitchingFilter.HEADER, identityZone.getId())).andReturn(); + List mfaProviders = JsonUtils.readValue(mfaListResult.getResponse().getContentAsString(), List.class); + List providerIds = mfaProviders.stream().map(provider -> provider.get("id")).collect(Collectors.toList()); + assertTrue(providerIds.contains(mfaProvider.getId())); + } + @Test public void testRetrieveMfaProviderByIdInvalid() throws Exception { MvcResult authorization = getMockMvc().perform(