NEUTRON-162: vlan_transparent attribute is missing in network_attributes
[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, " + "\"vlan_transparent\": false, "
24             + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
25
26     @Test
27     public void test_NeutronNetwork_SingleProvider_JAXB()  throws JAXBException {
28         NeutronNetwork testObject = JaxbTestHelper.jaxbUnmarshall(NeutronNetwork.class,
29                 NEUTRON_NETWORK_SINGLE_PROVIDER_SOURCE_JSON);
30         Assert.assertEquals("NeutronNetwork JAXB Test 1: Testing id failed", "4e8e5957-649f-477b-9e5b-f1f75b21c03c",
31                 testObject.getID());
32
33         Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing physical network id failed",
34                 "8bab8453-1bc9-45af-8c70-f83aa9b50453", testObject.getProviderPhysicalNetwork());
35
36         Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing status failed", "ACTIVE", testObject.getStatus());
37
38         Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing name failed", "net1", testObject.getName());
39
40         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing admin state up failed", true,
41                 testObject.getAdminStateUp());
42
43         Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing router external failed", false,
44                 testObject.getRouterExternal());
45
46         Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing provider segmentation id failed", "2",
47                 testObject.getProviderSegmentationID());
48
49         Assert.assertEquals("NeutronNetwork JAXB Test 10: Testing provider network type id failed", "vlan",
50                 testObject.getProviderNetworkType());
51
52         Assert.assertEquals("NeutronNetwork JAXB Test 11: Testing shared failed", false, testObject.getShared());
53
54         Assert.assertEquals("NeutronNetwork JAXB Test 12: Testing vlan_transparent failed", false,
55                 testObject.getVlanTransparent());
56
57         Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
58                 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
59     }
60
61     private static final String NEUTRON_NETWORK_MULTIPLE_PROVIDER_SOURCE_JSON = "{" + "\"status\": \"ACTIVE\", "
62             + "\"subnets\": [ \"3b80198d-4f7b-4f77-9ef5-774d54e17126\" ], " + "\"name\": \"net1\", "
63             + "\"admin_state_up\": true, " + "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", "
64             + "\"router:external\": false, " + "\"segments\": [ { " + "\"provider:segmentation_id\": \"2\", "
65             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
66             + "\"provider:network_type\": \"vlan\" }, " + "{ \"provider:segmentation_id\": null, "
67             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50454\", "
68             + "\"provider:network_type\": \"stt\" } ], " + "\"shared\": false, " + "\"vlan_transparent\": false, "
69             + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
70
71     @Test
72     public void test_NeutronNetwork_MultipleProvider_JAXB()  throws JAXBException {
73         NeutronNetwork testObject = JaxbTestHelper.jaxbUnmarshall(NeutronNetwork.class,
74                 NEUTRON_NETWORK_MULTIPLE_PROVIDER_SOURCE_JSON);
75         Assert.assertEquals("NeutronNetwork JAXB Test 1: Testing id failed", "4e8e5957-649f-477b-9e5b-f1f75b21c03c",
76                 testObject.getID());
77
78         Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing status failed", "ACTIVE", testObject.getStatus());
79
80         Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing name failed", "net1", testObject.getName());
81
82         Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing admin state up failed", true,
83                 testObject.getAdminStateUp());
84
85         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing router external failed", false,
86                 testObject.getRouterExternal());
87
88         Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing shared failed", false, testObject.getShared());
89
90         Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing vlan_transparent failed", false,
91                 testObject.getVlanTransparent());
92
93         List<NeutronNetworkSegment> segments = testObject.getSegments();
94         Assert.assertEquals("NeutronNetwork JAXB Test 10.1: Testing segments list length failed", 2,
95                 segments.size());
96
97         Assert.assertEquals("NeutronNetwork JAXB Test 10.2: Testing segment index 0 segmentation id failed", "2",
98                 segments.get(0).getProviderSegmentationID());
99
100         Assert.assertEquals("NeutronNetwork JAXB Test 10.3: Testing segment index 0 physical network failed",
101                 "8bab8453-1bc9-45af-8c70-f83aa9b50453", segments.get(0).getProviderPhysicalNetwork());
102
103         Assert.assertEquals("NeutronNetwork JAXB Test 10.4: Testing segment index 0 network type failed", "vlan",
104                 segments.get(0).getProviderNetworkType());
105
106         Assert.assertEquals("NeutronNetwork JAXB Test 10.5: Testing segment index 1 segmentation id failed", null,
107                 segments.get(1).getProviderSegmentationID());
108
109         Assert.assertEquals("NeutronNetwork JAXB Test 10.3: Testing segment index 1 physical network failed",
110                 "8bab8453-1bc9-45af-8c70-f83aa9b50454", segments.get(1).getProviderPhysicalNetwork());
111
112         Assert.assertEquals("NeutronNetwork JAXB Test 10.4: Testing segment index 1 network type failed", "stt",
113                 segments.get(1).getProviderNetworkType());
114
115         Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
116                 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
117     }
118
119     private static final String NEUTRON_NETWORK_L3_HA_SOURCE_JSON = "{"
120             + "\"name\": \"HA network tenant c15340eb65804b20af2dd0fd3beddc8c\", "
121             + "\"provider:physical_network\": null, " + "\"admin_state_up\": true, " + "\"tenant_id\": \"\", "
122             + "\"mtu\": 0, " + "\"router:external\": false, " + "\"shared\": false, " + "\"vlan_transparent\": false, "
123             + "\"port_security_enabled\": true, " + "\"provider:network_type\": \"vxlan\", "
124             + "\"id\": \"d3a2beea-c6ca-4e76-ba7d-e947c5df0c0e\", " + "\"provider:segmentation_id\": 1018 " + "}";
125
126     @Test
127     public void test_NeutronNetwork_L3_HA_JAXB()  throws JAXBException {
128         NeutronNetwork testObject = JaxbTestHelper.jaxbUnmarshall(NeutronNetwork.class,
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         Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing name failed",
134                 "HA network tenant c15340eb65804b20af2dd0fd3beddc8c", testObject.getName());
135
136         Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing admin state up failed", true,
137                 testObject.getAdminStateUp());
138
139         Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing router external failed", false,
140                 testObject.getRouterExternal());
141
142         Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing shared failed", false, testObject.getShared());
143
144         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing provider segmentation id failed", "1018",
145                 testObject.getProviderSegmentationID());
146
147         Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing vlan_transparent failed", false,
148                 testObject.getVlanTransparent());
149
150         // Bug 4775: tenantId is null when json provides it as empty string
151         Assert.assertNull("NeutronNetwork JAXB Test 2: Testing tenant_id failed", testObject.getTenantID());
152     }
153 }