checkstyle: TypeName
[neutron.git] / neutron-spi / src / test / java / org / opendaylight / neutron / spi / NeutronNetworkJAXBTest.java
1 /*
2  * Copyright (C) 2015 IBM, Inc.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.neutron.spi;
10
11 import java.util.List;
12 import javax.xml.bind.JAXBException;
13 import org.junit.Assert;
14 import org.junit.Test;
15
16 public class NeutronNetworkJAXBTest {
17
18     private static final String NEUTRON_NETWORK_SINGLE_PROVIDER_SOURCE_JSON = "{ " + "\"status\": \"ACTIVE\", "
19             + "\"subnets\": [ \"3b80198d-4f7b-4f77-9ef5-774d54e17126\" ], " + "\"name\": \"net1\", "
20             + "\"admin_state_up\": true, " + "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", "
21             + "\"router:external\": false, " + "\"provider:segmentation_id\": \"2\", "
22             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
23             + "\"provider:network_type\": \"vlan\", " + "\"shared\": false, "
24             + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
25
26     @Test
27     public void test_NeutronNetwork_SingleProvider_JAXB()  throws JAXBException {
28         NeutronNetwork dummyObject = new NeutronNetwork();
29
30         NeutronNetwork testObject = (NeutronNetwork) JaxbTestHelper.jaxbUnmarshall(dummyObject,
31                 NEUTRON_NETWORK_SINGLE_PROVIDER_SOURCE_JSON);
32         Assert.assertEquals("NeutronNetwork JAXB Test 1: Testing id failed", "4e8e5957-649f-477b-9e5b-f1f75b21c03c",
33                 testObject.getID());
34
35         Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
36                 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
37
38         Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing physical network id failed",
39                 "8bab8453-1bc9-45af-8c70-f83aa9b50453", testObject.getProviderPhysicalNetwork());
40
41         Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing status failed", "ACTIVE", testObject.getStatus());
42
43         Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing name failed", "net1", testObject.getName());
44
45         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing admin state up failed", true,
46                 testObject.getAdminStateUp());
47
48         Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing router external failed", false,
49                 testObject.getRouterExternal());
50
51         Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing provider segmentation id failed", "2",
52                 testObject.getProviderSegmentationID());
53
54         Assert.assertEquals("NeutronNetwork JAXB Test 10: Testing provider network type id failed", "vlan",
55                 testObject.getProviderNetworkType());
56
57         Assert.assertEquals("NeutronNetwork JAXB Test 11: Testing shared failed", false, testObject.getShared());
58     }
59
60     private static final String NEUTRON_NETWORK_MULTIPLE_PROVIDER_SOURCE_JSON = "{" + "\"status\": \"ACTIVE\", "
61             + "\"subnets\": [ \"3b80198d-4f7b-4f77-9ef5-774d54e17126\" ], " + "\"name\": \"net1\", "
62             + "\"admin_state_up\": true, " + "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", "
63             + "\"router:external\": false, " + "\"segments\": [ { " + "\"provider:segmentation_id\": \"2\", "
64             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
65             + "\"provider:network_type\": \"vlan\" }, " + "{ \"provider:segmentation_id\": null, "
66             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50454\", "
67             + "\"provider:network_type\": \"stt\" } ], " + "\"shared\": false, "
68             + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
69
70     @Test
71     public void test_NeutronNetwork_MultipleProvider_JAXB()  throws JAXBException {
72         NeutronNetwork dummyObject = new NeutronNetwork();
73
74         NeutronNetwork testObject = (NeutronNetwork) JaxbTestHelper.jaxbUnmarshall(dummyObject,
75                 NEUTRON_NETWORK_MULTIPLE_PROVIDER_SOURCE_JSON);
76         Assert.assertEquals("NeutronNetwork JAXB Test 1: Testing id failed", "4e8e5957-649f-477b-9e5b-f1f75b21c03c",
77                 testObject.getID());
78
79         Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
80                 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
81
82         Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing status failed", "ACTIVE", testObject.getStatus());
83
84         Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing name failed", "net1", testObject.getName());
85
86         Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing admin state up failed", true,
87                 testObject.getAdminStateUp());
88
89         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing router external failed", false,
90                 testObject.getRouterExternal());
91
92         Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing shared failed", false, testObject.getShared());
93
94         List<NeutronNetworkSegment> segments = testObject.getSegments();
95         Assert.assertEquals("NeutronNetwork JAXB Test 9.1: Testing segments list length failed", 2,
96                 segments.size());
97
98         Assert.assertEquals("NeutronNetwork JAXB Test 9.2: Testing segment index 0 segmentation id failed", "2",
99                 segments.get(0).getProviderSegmentationID());
100
101         Assert.assertEquals("NeutronNetwork JAXB Test 9.3: Testing segment index 0 physical network failed",
102                 "8bab8453-1bc9-45af-8c70-f83aa9b50453", segments.get(0).getProviderPhysicalNetwork());
103
104         Assert.assertEquals("NeutronNetwork JAXB Test 9.4: Testing segment index 0 network type failed", "vlan",
105                 segments.get(0).getProviderNetworkType());
106
107         Assert.assertEquals("NeutronNetwork JAXB Test 9.5: Testing segment index 1 segmentation id failed", null,
108                 segments.get(1).getProviderSegmentationID());
109
110         Assert.assertEquals("NeutronNetwork JAXB Test 9.3: Testing segment index 1 physical network failed",
111                 "8bab8453-1bc9-45af-8c70-f83aa9b50454", segments.get(1).getProviderPhysicalNetwork());
112
113         Assert.assertEquals("NeutronNetwork JAXB Test 9.4: Testing segment index 1 network type failed", "stt",
114                 segments.get(1).getProviderNetworkType());
115     }
116
117     private static final String NEUTRON_NETWORK_L3_HA_SOURCE_JSON = "{"
118             + "\"name\": \"HA network tenant c15340eb65804b20af2dd0fd3beddc8c\", "
119             + "\"provider:physical_network\": null, " + "\"admin_state_up\": true, " + "\"tenant_id\": \"\", "
120             + "\"mtu\": 0, " + "\"router:external\": false, " + "\"shared\": false, " + "\"vlan_transparent\": null, "
121             + "\"port_security_enabled\": true, " + "\"provider:network_type\": \"vxlan\", "
122             + "\"id\": \"d3a2beea-c6ca-4e76-ba7d-e947c5df0c0e\", " + "\"provider:segmentation_id\": 1018 " + "}";
123
124     @Test
125     public void test_NeutronNetwork_L3_HA_JAXB()  throws JAXBException {
126         NeutronNetwork dummyObject = new NeutronNetwork();
127
128         NeutronNetwork testObject = (NeutronNetwork) JaxbTestHelper.jaxbUnmarshall(dummyObject,
129                 NEUTRON_NETWORK_L3_HA_SOURCE_JSON);
130         Assert.assertEquals("NeutronNetwork JAXB Test 1: Testing id failed", "d3a2beea-c6ca-4e76-ba7d-e947c5df0c0e",
131                 testObject.getID());
132
133         // Bug 4775: tenantId is null when json provides it as empty string
134         Assert.assertNull("NeutronNetwork JAXB Test 2: Testing tenant_id failed", testObject.getTenantID());
135
136         Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing name failed",
137                 "HA network tenant c15340eb65804b20af2dd0fd3beddc8c", testObject.getName());
138
139         Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing admin state up failed", true,
140                 testObject.getAdminStateUp());
141
142         Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing router external failed", false,
143                 testObject.getRouterExternal());
144
145         Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing shared failed", false, testObject.getShared());
146
147         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing provider segmentation id failed", "1018",
148                 testObject.getProviderSegmentationID());
149     }
150 }