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, " + "\"vlan_transparent\": false, "
24 + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
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",
33 Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing physical network id failed",
34 "8bab8453-1bc9-45af-8c70-f83aa9b50453", testObject.getProviderPhysicalNetwork());
36 Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing status failed", "ACTIVE", testObject.getStatus());
38 Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing name failed", "net1", testObject.getName());
40 Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing admin state up failed", true,
41 testObject.getAdminStateUp());
43 Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing router external failed", false,
44 testObject.getRouterExternal());
46 Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing provider segmentation id failed", "2",
47 testObject.getProviderSegmentationID());
49 Assert.assertEquals("NeutronNetwork JAXB Test 10: Testing provider network type id failed", "vlan",
50 testObject.getProviderNetworkType());
52 Assert.assertEquals("NeutronNetwork JAXB Test 11: Testing shared failed", false, testObject.getShared());
54 Assert.assertEquals("NeutronNetwork JAXB Test 12: Testing vlan_transparent failed", false,
55 testObject.getVlanTransparent());
57 Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
58 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
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\" }";
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",
78 Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing status failed", "ACTIVE", testObject.getStatus());
80 Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing name failed", "net1", testObject.getName());
82 Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing admin state up failed", true,
83 testObject.getAdminStateUp());
85 Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing router external failed", false,
86 testObject.getRouterExternal());
88 Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing shared failed", false, testObject.getShared());
90 Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing vlan_transparent failed", false,
91 testObject.getVlanTransparent());
93 List<NeutronNetworkSegment> segments = testObject.getSegments();
94 Assert.assertEquals("NeutronNetwork JAXB Test 10.1: Testing segments list length failed", 2,
97 Assert.assertEquals("NeutronNetwork JAXB Test 10.2: Testing segment index 0 segmentation id failed", "2",
98 segments.get(0).getProviderSegmentationID());
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());
103 Assert.assertEquals("NeutronNetwork JAXB Test 10.4: Testing segment index 0 network type failed", "vlan",
104 segments.get(0).getProviderNetworkType());
106 Assert.assertEquals("NeutronNetwork JAXB Test 10.5: Testing segment index 1 segmentation id failed", null,
107 segments.get(1).getProviderSegmentationID());
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());
112 Assert.assertEquals("NeutronNetwork JAXB Test 10.4: Testing segment index 1 network type failed", "stt",
113 segments.get(1).getProviderNetworkType());
115 Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
116 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
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 " + "}";
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",
133 Assert.assertEquals("NeutronNetwork JAXB Test 3: Testing name failed",
134 "HA network tenant c15340eb65804b20af2dd0fd3beddc8c", testObject.getName());
136 Assert.assertEquals("NeutronNetwork JAXB Test 4: Testing admin state up failed", true,
137 testObject.getAdminStateUp());
139 Assert.assertEquals("NeutronNetwork JAXB Test 5: Testing router external failed", false,
140 testObject.getRouterExternal());
142 Assert.assertEquals("NeutronNetwork JAXB Test 6: Testing shared failed", false, testObject.getShared());
144 Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing provider segmentation id failed", "1018",
145 testObject.getProviderSegmentationID());
147 Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing vlan_transparent failed", false,
148 testObject.getVlanTransparent());
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());