create RoleValidatorFactory component.
[vid.git] / vid-app-common / src / test / java / org / onap / vid / roles / RoleValidatorBySubscriberAndServiceTypeTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.vid.roles;
22
23
24 import static org.assertj.core.api.Assertions.assertThat;
25
26 import com.google.common.collect.ImmutableList;
27 import com.google.common.collect.ImmutableMap;
28 import java.util.List;
29 import java.util.Map;
30 import org.onap.vid.mso.rest.RequestDetails;
31 import org.testng.annotations.BeforeMethod;
32 import org.testng.annotations.Test;
33
34 public class RoleValidatorBySubscriberAndServiceTypeTest {
35
36     private static final String SAMPLE_SUBSCRIBER = "sampleSubscriber";
37     private static final String NOT_MATCHING_SUBSCRIBER = "notMatchingSubscriber";
38     private static final String SAMPLE_SERVICE_TYPE = "sampleServiceType";
39     private static final String NOT_MATCHING_TENANT = "notMatchingTenant";
40     private static final String SAMPLE_TENANT = "sampleTenant";
41
42     private static final Role SAMPLE_ROLE = new Role(EcompRole.READ, SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT);
43
44     private List<Role> roles = ImmutableList.of(SAMPLE_ROLE);
45     private Map<String, Object> subscriberInfo = ImmutableMap.of("globalSubscriberId", SAMPLE_SUBSCRIBER);
46     private Map<String, Object> requestParameters = ImmutableMap.of("subscriptionServiceType", SAMPLE_SERVICE_TYPE);
47     private Map<String, Object> requestDetailsProperties = ImmutableMap.of("subscriberInfo", subscriberInfo, "requestParameters", requestParameters);
48     private RequestDetails requestDetails;
49     private RoleValidatorBySubscriberAndServiceType roleValidatorBySubscriberAndServiceType;
50
51     @BeforeMethod
52     public void setUp() {
53         roleValidatorBySubscriberAndServiceType = new RoleValidatorBySubscriberAndServiceType(roles);
54         requestDetails = new RequestDetails();
55     }
56
57     @Test
58     public void shouldPermitSubscriberWhenNameMatchesAndRolesAreEnabled() {
59         assertThat(roleValidatorBySubscriberAndServiceType.isSubscriberPermitted(SAMPLE_SUBSCRIBER)).isTrue();
60     }
61
62     @Test
63     public void shouldNotPermitSubscriberWhenNameNotMatches() {
64         assertThat(roleValidatorBySubscriberAndServiceType.isSubscriberPermitted(NOT_MATCHING_SUBSCRIBER)).isFalse();
65     }
66
67     @Test
68     public void shouldPermitServiceWhenNamesMatches() {
69         assertThat(roleValidatorBySubscriberAndServiceType.isServicePermitted(new PermissionProperties(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE))).isTrue();
70     }
71
72
73     @Test
74     public void shouldNotPermitServiceWhenSubscriberNameNotMatches() {
75         assertThat(
76             roleValidatorBySubscriberAndServiceType.isServicePermitted(new PermissionProperties(NOT_MATCHING_SUBSCRIBER, SAMPLE_SERVICE_TYPE))).isFalse();
77     }
78
79     @Test
80     public void shouldNotPermitServiceWhenServiceTypeNotMatches() {
81         assertThat(roleValidatorBySubscriberAndServiceType.isServicePermitted(new PermissionProperties(SAMPLE_SUBSCRIBER, NOT_MATCHING_SUBSCRIBER))).isFalse();
82     }
83
84     @Test
85     public void shouldPermitTenantWhenNameMatches() {
86         assertThat(roleValidatorBySubscriberAndServiceType
87             .isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT)).isTrue();
88     }
89
90     @Test
91     public void shouldPermitTenantWhenNameMatchesCaseInsensitive() {
92         assertThat(roleValidatorBySubscriberAndServiceType
93             .isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, SAMPLE_TENANT.toUpperCase())).isTrue();
94     }
95
96
97     @Test
98     public void shouldNotPermitTenantWhenNameNotMatches() {
99         assertThat(roleValidatorBySubscriberAndServiceType
100             .isTenantPermitted(SAMPLE_SUBSCRIBER, SAMPLE_SERVICE_TYPE, NOT_MATCHING_TENANT)).isFalse();
101     }
102
103 }