Replaced tests for roles
[vid.git] / vid-app-common / src / test / java / org / onap / vid / roles / RoleValidatorTest.java
1 package org.onap.vid.roles;
2
3
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;
9
10 import java.util.List;
11 import java.util.Map;
12
13 import static org.assertj.core.api.Assertions.assertThat;
14
15 public class RoleValidatorTest {
16
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";
22
23     private static final Role SAMPLE_ROLE = new Role(EcompRole.READ, SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT);
24
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;
31
32     @BeforeMethod
33     public void setUp() {
34         roleValidator = new RoleValidator(roles);
35         roleValidator.enableRoles();
36         requestDetails = new RequestDetails();
37     }
38
39     @Test
40     public void shouldPermitSubscriberWhenNameMatchesAndRolesAreEnabled() {
41         assertThat(roleValidator.isSubscriberPermitted(SAMPLE_SUBSCRIBER)).isTrue();
42     }
43
44     @Test
45     public void shouldNotPermitSubscriberWhenNameNotMatches() {
46         assertThat(roleValidator.isSubscriberPermitted(NOT_MATCHING_SUBSCRIBER)).isFalse();
47     }
48
49     @Test
50     public void shouldPermitServiceWhenNamesMatches() {
51         assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isTrue();
52     }
53
54
55     @Test
56     public void shouldNotPermitServiceWhenSubscriberNameNotMatches() {
57         assertThat(roleValidator.isServicePermitted(NOT_MATCHING_SUBSCRIBER, SAMPLE_SERVICE_TYPE)).isFalse();
58     }
59
60     @Test
61     public void shouldNotPermitServiceWhenServiceTypeNotMatches() {
62         assertThat(roleValidator.isServicePermitted(SAMPLE_SUBSCRIBER, NOT_MATCHING_SUBSCRIBER)).isFalse();
63     }
64
65     @Test
66     public void shouldPermitTenantWhenNameMatches() {
67         assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT)).isTrue();
68     }
69
70
71     @Test
72     public void shouldNotPermitTenantWhenNameNotMatches() {
73         assertThat(roleValidator.isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, NOT_MATCHING_TENANT)).isFalse();
74     }
75
76     @Test
77     public void shouldValidateProperlySORequest() {
78         requestDetails.setAdditionalProperty("requestDetails", requestDetailsProperties);
79
80         assertThat(roleValidator.isMsoRequestValid(requestDetails)).isTrue();
81     }
82
83     @Test
84     public void shouldValidateUnknownSORequest() {
85         assertThat(roleValidator.isMsoRequestValid(new RequestDetails())).isTrue();
86     }
87
88     @Test
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);
93
94         assertThat(roleValidator.isMsoRequestValid(requestDetails)).isFalse();
95     }
96 }