Merge "Reorder modifiers"
[so.git] / adapters / mso-adapter-utils / src / test / java / org / openecomp / mso / openstack / beans / NetworkInfoTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 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.openecomp.mso.openstack.beans;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24
25 import com.woorea.openstack.quantum.model.Network;
26 import com.woorea.openstack.quantum.model.Segment;
27 import java.util.ArrayList;
28 import java.util.List;
29 import org.junit.Test;
30
31 public class NetworkInfoTest {
32
33     private static final String NETWORK_STATUS_ACTIVE = "ACTIVE";
34     private static final String NETWORK_STATUS_ID = "networkIdTest";
35     private static final String NETWORK_STATUS_NAME = "networkNameTest";
36     private static final String SUBNET_NAME = "subnetTest";
37     private static final String PROVIDER = "providerTest";
38     private static final String PROVIDER_NETWORK_TYPE_VLAN = "vlan";
39     private static final String PROVIDER_NETWORK_TYPE_OTHER = "providerTypeTest";
40     private static final Integer PROVIDER_SEGMENTATION_ID = 777;
41     private static final String PROVIDER_FOR_SEGMENT = "providerSegmentTest";
42     private static final Integer PROVIDER_SEGMENTATION_ID_FOR_SEGMENT = 123;
43
44     @Test
45     public void networkStatusUnknownWhenIsNullInNetwork() {
46         NetworkInfo networkInfo = new NetworkInfo(prepareNetwork(null));
47         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.UNKNOWN);
48         checkCommonPartWhenProviderIsNotPresent(networkInfo);
49     }
50
51     @Test
52     public void networkStatusUnknownWhenNotFoundInNetworkStatusMap() {
53         NetworkInfo networkInfo = new NetworkInfo(prepareNetwork("notExistingNetworkStatus"));
54         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.UNKNOWN);
55         checkCommonPartWhenProviderIsNotPresent(networkInfo);
56     }
57
58     @Test
59     public void setNetworkStatusWhenNetworkStatusFoundInNetworkStatusMap() {
60         NetworkInfo networkInfo = new NetworkInfo(prepareNetwork(NETWORK_STATUS_ACTIVE));
61         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
62         checkCommonPartWhenProviderIsNotPresent(networkInfo);
63     }
64
65     @Test
66     public void setVLANProviderFromTheNetwork() {
67         NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithProvider(NETWORK_STATUS_ACTIVE, PROVIDER,
68                 PROVIDER_NETWORK_TYPE_VLAN));
69         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
70         assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER);
71         assertThat(networkInfo.getVlans()).hasSize(1).contains(PROVIDER_SEGMENTATION_ID);
72         checkCommonPart(networkInfo);
73     }
74
75     @Test
76     public void setOtherProviderFromTheNetwork() {
77         NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithProvider(NETWORK_STATUS_ACTIVE, PROVIDER,
78                 PROVIDER_NETWORK_TYPE_OTHER));
79         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
80         assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER);
81         assertThat(networkInfo.getVlans()).isEmpty();
82         checkCommonPart(networkInfo);
83     }
84
85     @Test
86     public void setVLANProviderFromTheNetworkSegments() {
87         NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithSegments(NETWORK_STATUS_ACTIVE,
88                 prepareSegment(PROVIDER_NETWORK_TYPE_VLAN)));
89         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
90         assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER_FOR_SEGMENT);
91         assertThat(networkInfo.getVlans()).hasSize(1).contains(PROVIDER_SEGMENTATION_ID_FOR_SEGMENT);
92         checkCommonPart(networkInfo);
93     }
94
95     @Test
96     public void setOtherProviderFromTheNetworkSegments() {
97         NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithSegments(NETWORK_STATUS_ACTIVE,
98                 prepareSegment(PROVIDER_NETWORK_TYPE_OTHER)));
99         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
100         assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER_FOR_SEGMENT);
101         assertThat(networkInfo.getVlans()).isEmpty();
102         checkCommonPart(networkInfo);
103     }
104
105     @Test
106     public void setNetworkStatusNotFoundWhenNetworkIsNull() {
107         NetworkInfo networkInfo = new NetworkInfo(null);
108         assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.NOTFOUND);
109     }
110
111     private void checkCommonPartWhenProviderIsNotPresent(NetworkInfo networkInfo) {
112         assertThat(networkInfo.getProvider()).isEmpty();
113         assertThat(networkInfo.getVlans()).isEmpty();
114         checkCommonPart(networkInfo);
115     }
116
117     private void checkCommonPart(NetworkInfo networkInfo) {
118         assertThat(networkInfo.getId()).isEqualTo(NETWORK_STATUS_ID);
119         assertThat(networkInfo.getName()).isEqualTo(NETWORK_STATUS_NAME);
120         assertThat(networkInfo.getSubnets()).hasSize(1).contains(SUBNET_NAME);
121     }
122
123     private Network prepareNetwork(String networkStatus) {
124         Network network = new Network();
125         network.setId(NETWORK_STATUS_ID);
126         network.setName(NETWORK_STATUS_NAME);
127         network.setStatus(networkStatus);
128         List<String> subnets = new ArrayList<>();
129         subnets.add(SUBNET_NAME);
130         network.setSubnets(subnets);
131         return network;
132     }
133
134     private Network prepareNetworkWithProvider(String networkStatus, String providerPhysicalNetwork, String providerNetworkType) {
135         Network network = prepareNetwork(networkStatus);
136         network.setProviderPhysicalNetwork(providerPhysicalNetwork);
137         network.setProviderNetworkType(providerNetworkType);
138         network.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID);
139         return network;
140     }
141
142     private Network prepareNetworkWithSegments(String networkStatus, Segment segment) {
143         Network network = prepareNetwork(networkStatus);
144         List<Segment> segments = new ArrayList<>();
145         segments.add(segment);
146         network.setSegments(segments);
147         return network;
148     }
149
150     private Segment prepareSegment(String providerNetworkType) {
151         Segment segment = new Segment();
152         segment.setProviderPhysicalNetwork(PROVIDER_FOR_SEGMENT);
153         segment.setProviderNetworkType(providerNetworkType);
154         segment.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID_FOR_SEGMENT);
155         return segment;
156     }
157
158 }