From 87b8ba7260d6e358ce824efd5135584874977cb6 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Sun, 16 Feb 2020 16:41:11 +0200 Subject: Test filter owning-entities from /category_parameter by permissions Issue-ID: VID-758 Change-Id: I9b5dc8906067c4f077ba2e03073e6dface6aa86c Signed-off-by: Ittay Stern --- .../test/java/org/onap/vid/api/BaseApiAaiTest.java | 25 +++++---- .../onap/vid/api/PropertyControllerApiTest.java | 62 ++++++++++++++++++++++ 2 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 vid-automation/src/test/java/org/onap/vid/api/PropertyControllerApiTest.java (limited to 'vid-automation/src/test') diff --git a/vid-automation/src/test/java/org/onap/vid/api/BaseApiAaiTest.java b/vid-automation/src/test/java/org/onap/vid/api/BaseApiAaiTest.java index 4ac38a0e7..32586afac 100644 --- a/vid-automation/src/test/java/org/onap/vid/api/BaseApiAaiTest.java +++ b/vid-automation/src/test/java/org/onap/vid/api/BaseApiAaiTest.java @@ -1,6 +1,15 @@ package org.onap.vid.api; +import static net.javacrumbs.jsonunit.JsonMatchers.jsonStringEquals; +import static org.hamcrest.Matchers.either; +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; +import static vid.automation.test.services.SimulatorApi.registerExpectation; + import com.google.common.collect.ImmutableMap; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import org.springframework.http.HttpMethod; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; @@ -8,23 +17,13 @@ import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.HttpStatusCodeException; import org.testng.annotations.BeforeClass; +import vid.automation.test.services.CategoryParamsService; import vid.automation.test.services.SimulatorApi; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -import static net.javacrumbs.jsonunit.JsonMatchers.jsonStringEquals; -import static org.hamcrest.Matchers.either; -import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; -import static vid.automation.test.services.SimulatorApi.registerExpectation; - -/** - * Created by Oren on 11/1/17. - */ public class BaseApiAaiTest extends BaseApiTest { + protected final CategoryParamsService categoryParamsService = new CategoryParamsService(); + @BeforeClass public void login() { super.login(); diff --git a/vid-automation/src/test/java/org/onap/vid/api/PropertyControllerApiTest.java b/vid-automation/src/test/java/org/onap/vid/api/PropertyControllerApiTest.java new file mode 100644 index 000000000..b12adbe46 --- /dev/null +++ b/vid-automation/src/test/java/org/onap/vid/api/PropertyControllerApiTest.java @@ -0,0 +1,62 @@ +package org.onap.vid.api; + +import static java.util.stream.Collectors.toList; +import static net.javacrumbs.jsonunit.JsonMatchers.jsonPartEquals; +import static org.hamcrest.MatcherAssert.assertThat; +import static vid.automation.test.infra.Features.FLAG_2006_LIMIT_OWNING_ENTITY_SELECTION_BY_ROLES; + +import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Stream; +import org.onap.sdc.ci.tests.datatypes.UserCredentials; +import org.testng.annotations.Test; +import vid.automation.test.Constants.Users; +import vid.automation.test.infra.FeatureTogglingTest; + +public class PropertyControllerApiTest extends BaseApiTest { + + private final List allOwningEntities = toOwningEntitiesList(Stream.of("aaa1", "Melissa", "WayneHolland")); + + private final List singleOwningEntity = toOwningEntitiesList(Stream.of("WayneHolland")); + + @Test + public void categoryParameter_whenUserFullyAllowed_allOwningEntitiesRetrieved() { + categoryParameters_loginAndAssertOwningEntities(Users.SILVIA_ROBBINS_TYLER_SILVIA, allOwningEntities); + } + + @Test + @FeatureTogglingTest(FLAG_2006_LIMIT_OWNING_ENTITY_SELECTION_BY_ROLES) + public void categoryParameter_whenUserNotFullyAllowed_onlySomeOwningEntitiesRetrieved() { + categoryParameters_loginAndAssertOwningEntities(Users.PORFIRIO_GERHARDT, singleOwningEntity); + } + + @Test + @FeatureTogglingTest(value = FLAG_2006_LIMIT_OWNING_ENTITY_SELECTION_BY_ROLES, flagActive = false) + public void categoryParameter_whenUserNotFullyAllowed_stillAllOwningEntitiesRetrieved() { + categoryParameters_loginAndAssertOwningEntities(Users.PORFIRIO_GERHARDT, allOwningEntities); + } + + + + public void categoryParameters_loginAndAssertOwningEntities(String user, List singleOwningEntities) { + login(new UserCredentials(usersService.getUser(user))); + + String url = uri.toASCIIString() + "/category_parameter?familyName=PARAMETER_STANDARDIZATION"; + + assertThat(restTemplate.getForObject(url, JsonNode.class), + jsonPartEquals("categoryParameters.owningEntity", singleOwningEntities)); + } + + private List toOwningEntitiesList(Stream owningEntitiesNames) { + return owningEntitiesNames.map(it -> ImmutableMap.of( + "name", it, + "id", expectedIdByName.apply(it)) + ).collect(toList()); + } + + static private final Function expectedIdByName = it -> + "WayneHolland".equals(it) ? "d61e6f2d-12fa-4cc2-91df-7c244011d6fc" : it; + +} -- cgit 1.2.3-korg