Merge "add JUnit for NetworkInfo"
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java
index 8e223b7..3e4ea27 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java
@@ -20,7 +20,6 @@
 
 package org.openecomp.mso.openstack.beans;
 
-
 /*
  * Enum status values to mirror the Openstack Heat stack status values
  */
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java
index 9f2c275..2cda8f9 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java
@@ -20,8 +20,6 @@
 
 package org.openecomp.mso.openstack.beans;
 
-
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -35,7 +33,6 @@
  *
  * This bean is returned by all Network-specific adapter operations (create, query, delete)
  */
-
 public class NetworkInfo {
 	// Set defaults for everything
 	private String name = "";
@@ -44,7 +41,6 @@
 	private String provider = "";
 	private List<Integer> vlans = new ArrayList<>();
 	private List<String> subnets = new ArrayList<>();
-	private String shared = "";
 
 	static Map<String,NetworkStatus> NetworkStatusMap;
 	static {
@@ -55,15 +51,6 @@
 		NetworkStatusMap.put("ERROR", NetworkStatus.ERROR);
 	}
 
-	public NetworkInfo () {
-	}
-
-	public NetworkInfo (String name, NetworkStatus status) {
-		this.name = name;
-		this.id = name;	// Don't have an ID, so just use name
-		this.status = status;
-	}
-
 	/**
 	 * Capture the data from a Neutron Network object.
 	 *
@@ -75,41 +62,35 @@
 	 *
 	 * @param network
 	 */
-	public NetworkInfo (Network network)
-	{
-		if (network == null) {
-			this.status = NetworkStatus.NOTFOUND;
-			return;
-		}
-
-		this.name = network.getName();
-		this.id = network.getId();
-
-		if (network.getStatus() == null) {
-			// Can this happen on a newly created network?
-			this.status = NetworkStatus.UNKNOWN;
-		} else if (NetworkStatusMap.containsKey(network.getStatus())) {
-			this.status = NetworkStatusMap.get(network.getStatus());
+	public NetworkInfo(Network network) {
+		if (network != null) {
+			initFieldsWithDataFromNetwork(network);
 		} else {
-			this.status = NetworkStatus.UNKNOWN;
+			status = NetworkStatus.NOTFOUND;
 		}
+	}
 
+	private void initFieldsWithDataFromNetwork(Network network){
+		name = network.getName();
+		id = network.getId();
+
+		if (network.getStatus() != null && NetworkStatusMap.containsKey(network.getStatus())) {
+			status = NetworkStatusMap.get(network.getStatus());
+		}
 		if (network.getProviderPhysicalNetwork() != null) {
-			this.provider = network.getProviderPhysicalNetwork();
+			provider = network.getProviderPhysicalNetwork();
 			if ("vlan".equals(network.getProviderNetworkType())) {
-                this.vlans.add(network.getProviderSegmentationId());
+                vlans.add(network.getProviderSegmentationId());
             }
 		}
 		else if (network.getSegments() != null && !network.getSegments().isEmpty()) {
 			Segment s = network.getSegments().get(0);
-			this.provider = s.getProviderPhysicalNetwork();
+			provider = s.getProviderPhysicalNetwork();
 			if ("vlan".equals(s.getProviderNetworkType())) {
-                for (Segment s1 : network.getSegments()) {
-					this.vlans.add(s1.getProviderSegmentationId());
-				}
+				network.getSegments().forEach(segment -> vlans.add(segment.getProviderSegmentationId()));
             }
 		}
-		this.subnets = network.getSubnets();
+		subnets = network.getSubnets();
 	}
 
 	public String getName() {
@@ -156,22 +137,17 @@
 		return subnets;
 	}
 
-	public void setSubnets (List<String> subnets) {
-		this.subnets = subnets;
-	}
-
-	public String getShared() {
-		return shared;
-	}
-
-	public void setShared(String shared) {
-		this.shared = shared;
-	}
-
 	@Override
-    public String toString () {
-		return "Network: name=" + name + ",id=" + id + ",status=" + status +
-				",provider=" + provider + ",vlans=" + vlans + ",subnets=" + subnets + ",shared=" + shared;
+	public String toString() {
+		final StringBuilder sb = new StringBuilder("NetworkInfo{");
+		sb.append("name='").append(name).append('\'');
+		sb.append(", id='").append(id).append('\'');
+		sb.append(", status=").append(status);
+		sb.append(", provider='").append(provider).append('\'');
+		sb.append(", vlans=").append(vlans);
+		sb.append(", subnets=").append(subnets);
+		sb.append('}');
+		return sb.toString();
 	}
 }
 
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java
index f231c75..6bd7815 100644
--- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java
@@ -22,25 +22,21 @@
 

 import static org.junit.Assert.assertTrue;

 

+import com.woorea.openstack.heat.model.Stack;

 import java.util.ArrayList;

 import java.util.HashMap;

 import java.util.List;

 import java.util.Map;

-

 import org.junit.Test;

 import org.openecomp.mso.entity.MsoRequest;

 import org.openecomp.mso.openstack.beans.HeatStatus;

 import org.openecomp.mso.openstack.beans.MsoTenant;

-import org.openecomp.mso.openstack.beans.NetworkInfo;

 import org.openecomp.mso.openstack.beans.NetworkRollback;

-import org.openecomp.mso.openstack.beans.NetworkStatus;

 import org.openecomp.mso.openstack.beans.Pool;

 import org.openecomp.mso.openstack.beans.StackInfo;

 import org.openecomp.mso.openstack.beans.Subnet;

 import org.openecomp.mso.openstack.beans.VnfRollback;

 

-import com.woorea.openstack.heat.model.Stack;

-

 public class AdapterBeansTest {

 	@Test

 	public final void msoTenantTest() {

@@ -58,33 +54,6 @@
 	}

 

 	@Test

-	public final void networkInfoTest() {

-		NetworkInfo networkInfo = new NetworkInfo();

-		networkInfo.setName("name");

-		assertTrue(networkInfo.getName().equalsIgnoreCase("name"));

-		networkInfo.setId("1");

-		assertTrue(networkInfo.getId().equalsIgnoreCase("1"));

-		networkInfo.setStatus(NetworkStatus.ACTIVE);

-		assertTrue(networkInfo.getStatus().equals(NetworkStatus.ACTIVE));

-		networkInfo.setProvider("provider");

-		networkInfo.getProvider().equalsIgnoreCase("provider");

-		List<Integer> al = new ArrayList<>();

-		al.add(1);

-		al.add(2);

-		networkInfo.setVlans(al);

-		assertTrue(networkInfo.getVlans() != null);

-		networkInfo.setShared("shared");

-		assertTrue(networkInfo.getShared().equalsIgnoreCase("shared"));

-		List<String> als = new ArrayList<>();

-		als.add("1");

-		als.add("2");

-		networkInfo.setSubnets(als);

-		assertTrue(networkInfo.getSubnets() != null);

-		new NetworkInfo("string", NetworkStatus.ACTIVE);

-		assertTrue(networkInfo.toString() != null);

-	}

-

-	@Test

 	public final void networkRollbackTest() {

 		NetworkRollback networkRollback = new NetworkRollback();

 		networkRollback.setCloudId("cloudId");

diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkInfoTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkInfoTest.java
new file mode 100644
index 0000000..0f357e5
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkInfoTest.java
@@ -0,0 +1,158 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.openstack.beans;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import com.woorea.openstack.quantum.model.Network;
+import com.woorea.openstack.quantum.model.Segment;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Test;
+
+public class NetworkInfoTest {
+
+    private static final String NETWORK_STATUS_ACTIVE = "ACTIVE";
+    private static final String NETWORK_STATUS_ID = "networkIdTest";
+    private static final String NETWORK_STATUS_NAME = "networkNameTest";
+    private static final String SUBNET_NAME = "subnetTest";
+    private static final String PROVIDER = "providerTest";
+    private static final String PROVIDER_NETWORK_TYPE_VLAN = "vlan";
+    private static final String PROVIDER_NETWORK_TYPE_OTHER = "providerTypeTest";
+    private static final Integer PROVIDER_SEGMENTATION_ID = 777;
+    private static final String PROVIDER_FOR_SEGMENT = "providerSegmentTest";
+    private static final Integer PROVIDER_SEGMENTATION_ID_FOR_SEGMENT = 123;
+
+    @Test
+    public void networkStatusUnknownWhenIsNullInNetwork() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetwork(null));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.UNKNOWN);
+        checkCommonPartWhenProviderIsNotPresent(networkInfo);
+    }
+
+    @Test
+    public void networkStatusUnknownWhenNotFoundInNetworkStatusMap() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetwork("notExistingNetworkStatus"));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.UNKNOWN);
+        checkCommonPartWhenProviderIsNotPresent(networkInfo);
+    }
+
+    @Test
+    public void setNetworkStatusWhenNetworkStatusFoundInNetworkStatusMap() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetwork(NETWORK_STATUS_ACTIVE));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+        checkCommonPartWhenProviderIsNotPresent(networkInfo);
+    }
+
+    @Test
+    public void setVLANProviderFromTheNetwork() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithProvider(NETWORK_STATUS_ACTIVE, PROVIDER,
+                PROVIDER_NETWORK_TYPE_VLAN));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+        assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER);
+        assertThat(networkInfo.getVlans()).hasSize(1).contains(PROVIDER_SEGMENTATION_ID);
+        checkCommonPart(networkInfo);
+    }
+
+    @Test
+    public void setOtherProviderFromTheNetwork() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithProvider(NETWORK_STATUS_ACTIVE, PROVIDER,
+                PROVIDER_NETWORK_TYPE_OTHER));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+        assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER);
+        assertThat(networkInfo.getVlans()).isEmpty();
+        checkCommonPart(networkInfo);
+    }
+
+    @Test
+    public void setVLANProviderFromTheNetworkSegments() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithSegments(NETWORK_STATUS_ACTIVE,
+                prepareSegment(PROVIDER_NETWORK_TYPE_VLAN)));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+        assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER_FOR_SEGMENT);
+        assertThat(networkInfo.getVlans()).hasSize(1).contains(PROVIDER_SEGMENTATION_ID_FOR_SEGMENT);
+        checkCommonPart(networkInfo);
+    }
+
+    @Test
+    public void setOtherProviderFromTheNetworkSegments() {
+        NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithSegments(NETWORK_STATUS_ACTIVE,
+                prepareSegment(PROVIDER_NETWORK_TYPE_OTHER)));
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+        assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER_FOR_SEGMENT);
+        assertThat(networkInfo.getVlans()).isEmpty();
+        checkCommonPart(networkInfo);
+    }
+
+    @Test
+    public void setNetworkStatusNotFoundWhenNetworkIsNull() {
+        NetworkInfo networkInfo = new NetworkInfo(null);
+        assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.NOTFOUND);
+    }
+
+    private void checkCommonPartWhenProviderIsNotPresent(NetworkInfo networkInfo) {
+        assertThat(networkInfo.getProvider()).isEmpty();
+        assertThat(networkInfo.getVlans()).isEmpty();
+        checkCommonPart(networkInfo);
+    }
+
+    private void checkCommonPart(NetworkInfo networkInfo) {
+        assertThat(networkInfo.getId()).isEqualTo(NETWORK_STATUS_ID);
+        assertThat(networkInfo.getName()).isEqualTo(NETWORK_STATUS_NAME);
+        assertThat(networkInfo.getSubnets()).hasSize(1).contains(SUBNET_NAME);
+    }
+
+    private Network prepareNetwork(String networkStatus) {
+        Network network = new Network();
+        network.setId(NETWORK_STATUS_ID);
+        network.setName(NETWORK_STATUS_NAME);
+        network.setStatus(networkStatus);
+        List<String> subnets = new ArrayList<>();
+        subnets.add(SUBNET_NAME);
+        network.setSubnets(subnets);
+        return network;
+    }
+
+    private Network prepareNetworkWithProvider(String networkStatus, String providerPhysicalNetwork, String providerNetworkType) {
+        Network network = prepareNetwork(networkStatus);
+        network.setProviderPhysicalNetwork(providerPhysicalNetwork);
+        network.setProviderNetworkType(providerNetworkType);
+        network.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID);
+        return network;
+    }
+
+    private Network prepareNetworkWithSegments(String networkStatus, Segment segment) {
+        Network network = prepareNetwork(networkStatus);
+        List<Segment> segments = new ArrayList<>();
+        segments.add(segment);
+        network.setSegments(segments);
+        return network;
+    }
+
+    private Segment prepareSegment(String providerNetworkType) {
+        Segment segment = new Segment();
+        segment.setProviderPhysicalNetwork(PROVIDER_FOR_SEGMENT);
+        segment.setProviderNetworkType(providerNetworkType);
+        segment.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID_FOR_SEGMENT);
+        return segment;
+    }
+
+}
diff --git a/adapters/mso-adapters-rest-interface/pom.xml b/adapters/mso-adapters-rest-interface/pom.xml
index bbf614a..f10500d 100644
--- a/adapters/mso-adapters-rest-interface/pom.xml
+++ b/adapters/mso-adapters-rest-interface/pom.xml
@@ -54,11 +54,5 @@
 			<version>1.10.19</version>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.assertj</groupId>
-			<artifactId>assertj-core</artifactId>
-			<version>3.8.0</version>
-			<scope>test</scope>
-		</dependency>
 	</dependencies>
 </project>
diff --git a/adapters/pom.xml b/adapters/pom.xml
index 80244a6..97c2506 100644
--- a/adapters/pom.xml
+++ b/adapters/pom.xml
@@ -28,7 +28,6 @@
 		<module>mso-workflow-message-adapter</module>
 		<module>mso-vfc-adapter</module>
 	</modules>
-
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.httpcomponents</groupId>
@@ -38,5 +37,11 @@
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpcore</artifactId>
         </dependency>
+		<dependency>
+			<groupId>org.assertj</groupId>
+			<artifactId>assertj-core</artifactId>
+			<version>3.9.0</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 </project>