From 80705cdf2dc38d48c4261a2ece3914234960233e Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Wed, 3 Apr 2019 12:00:57 +0300 Subject: Extract AlwaysValidRoleValidator from RoleValidator Issue-ID: VID-448 Change-Id: Ic006aceca9c51305d0706df6c2c6062ccaaee3de Signed-off-by: Ittay Stern --- .../vid/aai/SubscriberFilteredResultsTest.java | 4 +- .../test/java/org/onap/vid/bl/AaiServiceTest.java | 28 ++--- .../vid/controller/ServicePermissionsTest.java | 16 +-- .../vid/roles/AlwaysValidRoleValidatorTest.java | 43 ++++++++ .../onap/vid/roles/RoleValidatorByRolesTest.java | 114 ++++++++++++++++++++ .../java/org/onap/vid/roles/RoleValidatorTest.java | 116 --------------------- .../org/onap/vid/services/AaiServiceImplTest.java | 5 +- 7 files changed, 185 insertions(+), 141 deletions(-) create mode 100644 vid-app-common/src/test/java/org/onap/vid/roles/AlwaysValidRoleValidatorTest.java create mode 100644 vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorByRolesTest.java delete mode 100644 vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorTest.java (limited to 'vid-app-common/src/test') diff --git a/vid-app-common/src/test/java/org/onap/vid/aai/SubscriberFilteredResultsTest.java b/vid-app-common/src/test/java/org/onap/vid/aai/SubscriberFilteredResultsTest.java index 4655292c6..98b35aea4 100644 --- a/vid-app-common/src/test/java/org/onap/vid/aai/SubscriberFilteredResultsTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/aai/SubscriberFilteredResultsTest.java @@ -21,8 +21,6 @@ package org.onap.vid.aai; import java.util.ArrayList; -import java.util.List; - import org.junit.Test; import org.onap.vid.model.SubscriberList; import org.onap.vid.roles.EcompRole; @@ -34,7 +32,7 @@ public class SubscriberFilteredResultsTest { private SubscriberFilteredResults createTestSubject() { ArrayList list = new ArrayList(); list.add(new Role(EcompRole.READ, "a", "a", "a")); - RoleValidator rl=new RoleValidator(list); + RoleValidator rl=RoleValidator.by(list); SubscriberList sl = new SubscriberList(); sl.customer = new ArrayList(); sl.customer.add(new org.onap.vid.model.Subscriber()); diff --git a/vid-app-common/src/test/java/org/onap/vid/bl/AaiServiceTest.java b/vid-app-common/src/test/java/org/onap/vid/bl/AaiServiceTest.java index 9f1dc84c0..1b50681fc 100644 --- a/vid-app-common/src/test/java/org/onap/vid/bl/AaiServiceTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/bl/AaiServiceTest.java @@ -20,15 +20,29 @@ package org.onap.vid.bl; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.arrayWithSize; +import static org.hamcrest.Matchers.equalTo; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.onap.vid.aai.AaiClientInterface; import org.onap.vid.aai.AaiResponse; -import org.onap.vid.aai.model.*; +import org.onap.vid.aai.model.AaiGetPnfResponse; import org.onap.vid.aai.model.AaiGetPnfs.Pnf; import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse; +import org.onap.vid.aai.model.LogicalLinkResponse; +import org.onap.vid.aai.model.Relationship; +import org.onap.vid.aai.model.RelationshipData; +import org.onap.vid.aai.model.RelationshipList; +import org.onap.vid.aai.model.ServiceRelationships; import org.onap.vid.roles.Role; import org.onap.vid.roles.RoleValidator; import org.onap.vid.services.AaiServiceImpl; @@ -36,16 +50,6 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.arrayWithSize; -import static org.hamcrest.Matchers.equalTo; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; - public class AaiServiceTest { @InjectMocks @@ -164,7 +168,7 @@ public class AaiServiceTest { AaiResponse aaiResponse = new AaiResponse<>(getTenantsResponses, null, 200); Mockito.doReturn(aaiResponse).when(aaiClientInterface).getTenants(serviceGlobalCustomerId, serviceServiceType); Role role = new Role(null, userGlobalCustomerId, userServiceType, userTenantName); - RoleValidator roleValidator = new RoleValidator(Collections.singletonList(role)); + RoleValidator roleValidator = RoleValidator.by(Collections.singletonList(role)); AaiResponse actualTenants = aaiService.getTenants(serviceGlobalCustomerId, serviceServiceType, roleValidator); assertThat(actualTenants.getT(), arrayWithSize(1)); diff --git a/vid-app-common/src/test/java/org/onap/vid/controller/ServicePermissionsTest.java b/vid-app-common/src/test/java/org/onap/vid/controller/ServicePermissionsTest.java index abdf31572..36af92c0c 100644 --- a/vid-app-common/src/test/java/org/onap/vid/controller/ServicePermissionsTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/controller/ServicePermissionsTest.java @@ -20,14 +20,6 @@ package org.onap.vid.controller; -import org.jetbrains.annotations.NotNull; -import org.onap.vid.aai.model.Permissions; -import org.onap.vid.roles.RoleProvider; -import org.onap.vid.roles.RoleValidator; -import org.springframework.mock.web.MockHttpServletRequest; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; - import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; @@ -37,6 +29,14 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import org.jetbrains.annotations.NotNull; +import org.onap.vid.aai.model.Permissions; +import org.onap.vid.roles.RoleProvider; +import org.onap.vid.roles.RoleValidator; +import org.springframework.mock.web.MockHttpServletRequest; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + public class ServicePermissionsTest { @DataProvider diff --git a/vid-app-common/src/test/java/org/onap/vid/roles/AlwaysValidRoleValidatorTest.java b/vid-app-common/src/test/java/org/onap/vid/roles/AlwaysValidRoleValidatorTest.java new file mode 100644 index 000000000..363c6ff76 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/roles/AlwaysValidRoleValidatorTest.java @@ -0,0 +1,43 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.vid.roles; + +import static org.testng.Assert.assertTrue; + +import org.testng.annotations.Test; + +public class AlwaysValidRoleValidatorTest { + + @Test + public void testIsSubscriberPermitted() { + assertTrue(new AlwaysValidRoleValidator().isSubscriberPermitted("any")); + } + + @Test + public void testIsServicePermitted() { + assertTrue(new AlwaysValidRoleValidator().isServicePermitted("any", "any")); + } + + @Test + public void testIsTenantPermitted() { + assertTrue(new AlwaysValidRoleValidator().isTenantPermitted("any", "any", "any")); + } +} \ No newline at end of file diff --git a/vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorByRolesTest.java b/vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorByRolesTest.java new file mode 100644 index 000000000..9362ec9d7 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorByRolesTest.java @@ -0,0 +1,114 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.vid.roles; + + +import static org.assertj.core.api.Assertions.assertThat; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import org.onap.vid.mso.rest.RequestDetails; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +public class RoleValidatorByRolesTest { + + private static final String SAMPLE_SUBSCRIBER = "sampleSubscriber"; + private static final String NOT_MATCHING_SUBSCRIBER = "notMatchingSubscriber"; + private static final String SAMPLE_SERVICE_TYPE = "sampleServiceType"; + private static final String NOT_MATCHING_TENANT = "notMatchingTenant"; + private static final String SAMPLE_TENANT = "sampleTenant"; + + private static final Role SAMPLE_ROLE = new Role(EcompRole.READ, SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT); + + private List roles = ImmutableList.of(SAMPLE_ROLE); + private Map subscriberInfo = ImmutableMap.of("globalSubscriberId", SAMPLE_SUBSCRIBER); + private Map requestParameters = ImmutableMap.of("subscriptionServiceType", SAMPLE_SERVICE_TYPE); + private Map requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters); + private RequestDetails requestDetails; + private RoleValidatorByRoles roleValidator; + + @BeforeMethod + public void setUp() { + roleValidator = new RoleValidatorByRoles(roles); + requestDetails = new RequestDetails(); + } + + @Test + public void shouldPermitSubscriberWhenNameMatchesAndRolesAreEnabled() { + assertThat(roleValidator.isSubscriberPermitted(SAMPLE_SUBSCRIBER)).isTrue(); + } + + @Test + public void shouldNotPermitSubscriberWhenNameNotMatches() { + assertThat(roleValidator.isSubscriberPermitted(NOT_MATCHING_SUBSCRIBER)).isFalse(); + } + + @Test + public void shouldPermitServiceWhenNamesMatches() { + assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isTrue(); + } + + + @Test + public void shouldNotPermitServiceWhenSubscriberNameNotMatches() { + assertThat(roleValidator.isServicePermitted(NOT_MATCHING_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isFalse(); + } + + @Test + public void shouldNotPermitServiceWhenServiceTypeNotMatches() { + assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, NOT_MATCHING_SUBSCRIBER)).isFalse(); + } + + @Test + public void shouldPermitTenantWhenNameMatches() { + assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT)).isTrue(); + } + + + @Test + public void shouldNotPermitTenantWhenNameNotMatches() { + assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, NOT_MATCHING_TENANT)).isFalse(); + } + + @Test + public void shouldValidateProperlySORequest() { + requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties); + + assertThat(roleValidator.isMsoRequestValid(requestDetails)).isTrue(); + } + + @Test + public void shouldValidateUnknownSORequest() { + assertThat(roleValidator.isMsoRequestValid(new RequestDetails())).isTrue(); + } + + @Test + public void shouldRejectSORequestWhenSubscriberNotMatches() { + Map subscriberInfo = ImmutableMap.of("globalSubscriberId", "sample"); + Map requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters); + requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties); + + assertThat(roleValidator.isMsoRequestValid(requestDetails)).isFalse(); + } +} diff --git a/vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorTest.java b/vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorTest.java deleted file mode 100644 index 69ec3458e..000000000 --- a/vid-app-common/src/test/java/org/onap/vid/roles/RoleValidatorTest.java +++ /dev/null @@ -1,116 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.vid.roles; - - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import org.onap.vid.mso.rest.RequestDetails; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import java.util.List; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; - -public class RoleValidatorTest { - - private static final String SAMPLE_SUBSCRIBER = "sampleSubscriber"; - private static final String NOT_MATCHING_SUBSCRIBER = "notMatchingSubscriber"; - private static final String SAMPLE_SERVICE_TYPE = "sampleServiceType"; - private static final String NOT_MATCHING_TENANT = "notMatchingTenant"; - private static final String SAMPLE_TENANT = "sampleTenant"; - - private static final Role SAMPLE_ROLE = new Role(EcompRole.READ, SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT); - - private List roles = ImmutableList.of(SAMPLE_ROLE); - private Map subscriberInfo = ImmutableMap.of("globalSubscriberId", SAMPLE_SUBSCRIBER); - private Map requestParameters = ImmutableMap.of("subscriptionServiceType", SAMPLE_SERVICE_TYPE); - private Map requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters); - private RequestDetails requestDetails; - private RoleValidator roleValidator; - - @BeforeMethod - public void setUp() { - roleValidator = new RoleValidator(roles); - roleValidator.enableRoles(); - requestDetails = new RequestDetails(); - } - - @Test - public void shouldPermitSubscriberWhenNameMatchesAndRolesAreEnabled() { - assertThat(roleValidator.isSubscriberPermitted(SAMPLE_SUBSCRIBER)).isTrue(); - } - - @Test - public void shouldNotPermitSubscriberWhenNameNotMatches() { - assertThat(roleValidator.isSubscriberPermitted(NOT_MATCHING_SUBSCRIBER)).isFalse(); - } - - @Test - public void shouldPermitServiceWhenNamesMatches() { - assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isTrue(); - } - - - @Test - public void shouldNotPermitServiceWhenSubscriberNameNotMatches() { - assertThat(roleValidator.isServicePermitted(NOT_MATCHING_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isFalse(); - } - - @Test - public void shouldNotPermitServiceWhenServiceTypeNotMatches() { - assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, NOT_MATCHING_SUBSCRIBER)).isFalse(); - } - - @Test - public void shouldPermitTenantWhenNameMatches() { - assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT)).isTrue(); - } - - - @Test - public void shouldNotPermitTenantWhenNameNotMatches() { - assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, NOT_MATCHING_TENANT)).isFalse(); - } - - @Test - public void shouldValidateProperlySORequest() { - requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties); - - assertThat(roleValidator.isMsoRequestValid(requestDetails)).isTrue(); - } - - @Test - public void shouldValidateUnknownSORequest() { - assertThat(roleValidator.isMsoRequestValid(new RequestDetails())).isTrue(); - } - - @Test - public void shouldRejectSORequestWhenSubscriberNotMatches() { - Map subscriberInfo = ImmutableMap.of("globalSubscriberId", "sample"); - Map requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters); - requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties); - - assertThat(roleValidator.isMsoRequestValid(requestDetails)).isFalse(); - } -} diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java index 59cee89b2..e9f94ca0e 100644 --- a/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java @@ -44,6 +44,7 @@ import org.onap.vid.aai.model.AaiGetServicesRequestModel.GetServicesAAIRespone; import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse; import org.onap.vid.aai.model.VnfResult; import org.onap.vid.roles.RoleValidator; +import org.onap.vid.roles.RoleValidatorByRoles; public class AaiServiceImplTest { @@ -137,7 +138,7 @@ public class AaiServiceImplTest { when(response.getT()).thenReturn(new GetTenantsResponse[]{ permittedTenant, unpermittedTenant }); when(aaiClient.getTenants(globalCustomerId, serviceType)).thenReturn(response); - RoleValidator roleValidator = mock(RoleValidator.class); + RoleValidator roleValidator = mock(RoleValidatorByRoles.class); when(roleValidator.isTenantPermitted(globalCustomerId, serviceType, "permitted_tenant")).thenReturn(true); when(roleValidator.isTenantPermitted(globalCustomerId, serviceType, "unpermitted_tenant")).thenReturn(false); @@ -202,7 +203,7 @@ public class AaiServiceImplTest { @SuppressWarnings("unchecked") public void getServicesShouldMarkAllServicesAsPermitted() { // given - RoleValidator roleValidator = modelGenerator.nextObject(RoleValidator.class); + RoleValidator roleValidator = modelGenerator.nextObject(RoleValidatorByRoles.class); GetServicesAAIRespone inputPayload = modelGenerator.nextObject(GetServicesAAIRespone.class); assertThat(inputPayload.service.stream().allMatch(service -> service.isPermitted)).isFalse(); -- cgit 1.2.3-korg