2 * Copyright (C) 2015 IBM, Inc.
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
9 package org.opendaylight.neutron.spi;
11 import java.util.List;
12 import javax.xml.bind.JAXBException;
13 import org.junit.Assert;
14 import org.junit.Test;
16 public class NeutronNetworkJAXBTest {
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\" }";
27 public void test_NeutronNetwork_SingleProvider_JAXB() throws JAXBException {
28 NeutronNetwork dummyObject = new NeutronNetwork();
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",
35 Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
36 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
38 Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing physical network id failed",
39 "8bab8453-1bc9-45af-8c70-f83aa9b50453", testObject.getProviderPhysicalNetwork());
41 Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing status failed", "ACTIVE", testObject.getStatus());
43 Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing name failed", "net1", testObject.getName());
45 Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing admin state up failed", true,
46 testObject.getAdminStateUp());
48 Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing router external failed", false,
49 testObject.getRouterExternal());
51 Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing provider segmentation id failed", "2",
52 testObject.getProviderSegmentationID());
54 Assert.assertEquals("NeutronNetwork JAXB Test 10: Testing provider network type id failed", "vlan",
55 testObject.getProviderNetworkType());
57 Assert.assertEquals("NeutronNetwork JAXB Test 11: Testing shared failed", false, testObject.getShared());
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\" }";
71 public void test_NeutronNetwork_MultipleProvider_JAXB() throws JAXBException {
72 NeutronNetwork dummyObject = new NeutronNetwork();
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",
79 Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
80 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
82 Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing status failed", "ACTIVE", testObject.getStatus());
84 Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing name failed", "net1", testObject.getName());
86 Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing admin state up failed", true,
87 testObject.getAdminStateUp());
89 Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing router external failed", false,
90 testObject.getRouterExternal());
92 Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing shared failed", false, testObject.getShared());
94 List<NeutronNetworkSegment> segments = testObject.getSegments();
95 Assert.assertEquals("NeutronNetwork JAXB Test 9.1: Testing segments list length failed", 2,
98 Assert.assertEquals("NeutronNetwork JAXB Test 9.2: Testing segment index 0 segmentation id failed", "2",
99 segments.get(0).getProviderSegmentationID());
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());
104 Assert.assertEquals("NeutronNetwork JAXB Test 9.4: Testing segment index 0 network type failed", "vlan",
105 segments.get(0).getProviderNetworkType());
107 Assert.assertEquals("NeutronNetwork JAXB Test 9.5: Testing segment index 1 segmentation id failed", null,
108 segments.get(1).getProviderSegmentationID());
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());
113 Assert.assertEquals("NeutronNetwork JAXB Test 9.4: Testing segment index 1 network type failed", "stt",
114 segments.get(1).getProviderNetworkType());
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 " + "}";
125 public void test_NeutronNetwork_L3_HA_JAXB() throws JAXBException {
126 NeutronNetwork dummyObject = new NeutronNetwork();
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",
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());
136 Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing name failed",
137 "HA network tenant c15340eb65804b20af2dd0fd3beddc8c", testObject.getName());
139 Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing admin state up failed", true,
140 testObject.getAdminStateUp());
142 Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing router external failed", false,
143 testObject.getRouterExternal());
145 Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing shared failed", false, testObject.getShared());
147 Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing provider segmentation id failed", "1018",
148 testObject.getProviderSegmentationID());