1 package org.onap.vid.roles;
4 import com.google.common.collect.ImmutableList;
5 import com.google.common.collect.ImmutableMap;
6 import org.onap.vid.mso.rest.RequestDetails;
7 import org.testng.annotations.BeforeMethod;
8 import org.testng.annotations.Test;
10 import java.util.List;
13 import static org.assertj.core.api.Assertions.assertThat;
15 public class RoleValidatorTest {
17 private static final String SAMPLE_SUBSCRIBER = "sampleSubscriber";
18 private static final String NOT_MATCHING_SUBSCRIBER = "notMatchingSubscriber";
19 private static final String SAMPLE_SERVICE_TYPE = "sampleServiceType";
20 private static final String NOT_MATCHING_TENANT = "notMatchingTenant";
21 private static final String SAMPLE_TENANT = "sampleTenant";
23 private static final Role SAMPLE_ROLE = new Role(EcompRole.READ, SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT);
25 private List<Role> roles = ImmutableList.of(SAMPLE_ROLE);
26 private Map<String, Object> subscriberInfo = ImmutableMap.of("globalSubscriberId", SAMPLE_SUBSCRIBER);
27 private Map<String, Object> requestParameters = ImmutableMap.of("subscriptionServiceType", SAMPLE_SERVICE_TYPE);
28 private Map<String, Object> requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters);
29 private RequestDetails requestDetails;
30 private RoleValidator roleValidator;
34 roleValidator = new RoleValidator(roles);
35 roleValidator.enableRoles();
36 requestDetails = new RequestDetails();
40 public void shouldPermitSubscriberWhenNameMatchesAndRolesAreEnabled() {
41 assertThat(roleValidator.isSubscriberPermitted(SAMPLE_SUBSCRIBER)).isTrue();
45 public void shouldNotPermitSubscriberWhenNameNotMatches() {
46 assertThat(roleValidator.isSubscriberPermitted(NOT_MATCHING_SUBSCRIBER)).isFalse();
50 public void shouldPermitServiceWhenNamesMatches() {
51 assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isTrue();
56 public void shouldNotPermitServiceWhenSubscriberNameNotMatches() {
57 assertThat(roleValidator.isServicePermitted(NOT_MATCHING_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isFalse();
61 public void shouldNotPermitServiceWhenServiceTypeNotMatches() {
62 assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, NOT_MATCHING_SUBSCRIBER)).isFalse();
66 public void shouldPermitTenantWhenNameMatches() {
67 assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT)).isTrue();
72 public void shouldNotPermitTenantWhenNameNotMatches() {
73 assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, NOT_MATCHING_TENANT)).isFalse();
77 public void shouldValidateProperlySORequest() {
78 requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties);
80 assertThat(roleValidator.isMsoRequestValid(requestDetails)).isTrue();
84 public void shouldValidateUnknownSORequest() {
85 assertThat(roleValidator.isMsoRequestValid(new RequestDetails())).isTrue();
89 public void shouldRejectSORequestWhenSubscriberNotMatches() {
90 Map<String, Object> subscriberInfo = ImmutableMap.of("globalSubscriberId", "sample");
91 Map<String, Object> requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters);
92 requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties);
94 assertThat(roleValidator.isMsoRequestValid(requestDetails)).isFalse();