Merge "Add missing <name> fields for pom.xml files"
[neutron.git] / integration / test / src / test / java / org / opendaylight / neutron / e2etest / NeutronTrunkTests.java
1 /*
2  * Copyright (c) 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
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.e2etest;
10
11 import com.google.gson.JsonElement;
12 import com.google.gson.JsonObject;
13 import org.junit.Assert;
14
15 public class NeutronTrunkTests {
16     String base;
17
18     public NeutronTrunkTests(String base) {
19         this.base = base;
20     }
21
22     public void trunk_collection_get_test() {
23         String url = base + "/trunks";
24         ITNeutronE2E.test_fetch(url, "Trunk collection GET failed");
25     }
26
27     public String singleton_trunk_create_test() {
28         String url = base + "/trunks";
29         String content = "{\"trunk\":{\"status\":\"DOWN\",\"name\":\"trunk0\",\"admin_state_up\":true, "
30                 + "\"tenant_id\":\"cc3641789c8a4304abaa841c64f638d9\", "
31                 + "\"port_id\":\"60aac28d-1d3a-48d9-99bc-dd4bd62e50f2\", "
32                 + "\"sub_ports\":[{\"segmentation_type\":\"vlan\", "
33                 + "\"port_id\":\"dca33436-2a7c-415b-aa35-14769e7834e3\",\"segmentation_id\":101}, "
34                 + "{\"segmentation_type\":\"vlan\",\"port_id\":\"be28febe-bdff-45cc-8a2d-872d54e62527\", "
35                 + "\"segmentation_id\":102}],\"id\":\"c935240e-4aa6-496a-841c-d113c54499b9\", "
36                 + "\"description\":\"test trunk0\"} }";
37         ITNeutronE2E.test_create(url, content, "Singleton Trunk Post Failed NB");
38         return content;
39     }
40
41     public void singleton_trunk_get_with_one_query_item_test(String createJsonString) {
42         String url = base + "/trunks";
43         ITNeutronE2E.test_fetch_with_one_query_item(url, createJsonString, "trunks");
44     }
45
46     public String singleton_default_trunk_create_test() {
47         String url = base + "/trunks";
48         String content = "{\"trunk\":{\"name\":\"trunkdefault\", "
49                 + "\"tenant_id\":\"cc3641789c8a4304abaa841c64f638d9\", "
50                 + "\"port_id\":\"60aac28d-1d3a-48d9-99bc-dd4bd62e50f2\", "
51                 + "\"sub_ports\":[{\"segmentation_type\":\"vlan\", "
52                 + "\"port_id\":\"dca33436-2a7c-415b-aa35-14769e7834e3\",\"segmentation_id\":101}, "
53                 + "{\"segmentation_type\":\"vlan\",\"port_id\":\"be28febe-bdff-45cc-8a2d-872d54e62527\", "
54                 + "\"segmentation_id\":102}],\"id\":\"d935240e-4aa6-d96a-d41c-d113c54499b9\", "
55                 + "\"description\":\"test trunkdefault\"} }";
56         ITNeutronE2E.test_create(url, content, "Singleton Default Trunk Post Failed NB");
57         return content;
58     }
59
60     public void default_trunk_content_validation_test() {
61         //Validates NeutronTrunk default parmeters are set.
62         //Default parameters: status,admin_state_up
63         String element = "status";
64         String url = base + "/trunks/d935240e-4aa6-d96a-d41c-d113c54499b9?fields=" + element;
65         String expectedContent = "\"DOWN\"";
66         String context = "Trunk details do not match.";
67         JsonObject jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
68         jsonObjectOutput = jsonObjectOutput.getAsJsonObject("trunk");
69         JsonElement jsonElementValue = jsonObjectOutput.get(element);
70         Assert.assertEquals(context, expectedContent, String.valueOf(jsonElementValue));
71         element = "admin_state_up";
72         url = base + "/trunks/d935240e-4aa6-d96a-d41c-d113c54499b9?fields=" + element;
73         jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
74         jsonObjectOutput = jsonObjectOutput.getAsJsonObject("trunk");
75         jsonElementValue = jsonObjectOutput.get(element);
76         Assert.assertEquals(context, true, jsonElementValue.getAsBoolean());
77     }
78
79     public void bulk_trunk_create_test() {
80         String url = base + "/trunks";
81         String content = "{\"trunks\":[{\"status\":\"DOWN\",\"name\":\"trunk1\",\"admin_state_up\":true, "
82                 + "\"tenant_id\":\"cc3641789c8a4304abaa841c64f638d9\", "
83                 + "\"port_id\":\"87927a7a-86ec-4062-946f-40222ec583ca\", "
84                 + "\"sub_ports\":[{\"segmentation_type\":\"vlan\", "
85                 + "\"port_id\":\"75e366aa-51b6-4ec8-9695-739c465377f7\",\"segmentation_id\":101}, "
86                 + "{\"segmentation_type\":\"vlan\",\"port_id\":\"e12f8356-ff66-4948-979f-9dedb63ee299\", "
87                 + "\"segmentation_id\":102}],\"id\":\"bc587c4c-de31-42b1-89c3-809add88c9b3\", "
88                 + "\"description\":\"test trunk1\"},"
89                 + "{\"status\":\"ACTIVE\",\"name\":\"trunk2\",\"admin_state_up\":true, "
90                 + "\"tenant_id\":\"cc3641789c8a4304abaa841c64f638d9\","
91                 + "\"port_id\":\"f5624c68-eda2-42c1-92a1-53094707dc36\", "
92                 + "\"sub_ports\":[{\"segmentation_type\":\"vlan\", "
93                 + "\"port_id\":\"2a4897de-d5ba-4bd5-8998-4f86e083e3fd\", \"segmentation_id\":101},"
94                 + "{\"segmentation_type\":\"vlan\",\"port_id\":\"9dedb63e-ff66-4948-979f-e12f8356e299\", "
95                 + "\"segmentation_id\":102}],"
96                 + "\"id\":\"5e97b0a4-b5a3-49fd-b0cb-821bec16acfe\",\"description\":\"test trunk2\"}]}";
97         ITNeutronE2E.test_create(url, content, "Bulk Trunk Post Failed");
98     }
99
100     public void trunk_update_test() {
101         String url = base + "/trunks/c935240e-4aa6-496a-841c-d113c54499b9";
102         String content = "{\"trunk\":{\"status\":\"DOWN\",\"name\":\"trunk0\",\"admin_state_up\":true, "
103                 + "\"port_id\":\"60aac28d-1d3a-48d9-99bc-dd4bd62e50f2\", "
104                 + "\"sub_ports\":[{\"segmentation_type\":\"vlan\", "
105                 + "\"port_id\":\"dca33436-2a7c-415b-aa35-14769e7834e3\",\"segmentation_id\":101}], "
106                 + "\"id\":\"c935240e-4aa6-496a-841c-d113c54499b9\", \"description\":\"test trunk0 updated\"} }";
107         ITNeutronE2E.test_modify(url, content, "Trunk Put Failed");
108     }
109
110     public void trunk_bulk_get_test() {
111         String url = base + "/trunks"; // /c935240e-4aa6-496a-841c-d113c54499b9";
112         ITNeutronE2E.test_fetch(url, true, "Trunk Bulk Get Failed");
113     }
114
115     public void trunk_element_get_test() {
116         String url = base + "/trunks/c935240e-4aa6-496a-841c-d113c54499b9";
117         ITNeutronE2E.test_fetch(url, true, "Trunk Element Get Failed");
118     }
119
120     public void trunk_element_get_test_with_added_query() {
121         String url = base + "/trunks/c935240e-4aa6-496a-841c-d113c54499b9"
122                 + "?fields=id&fields=tenant_id&fields=name&fields=port_id"
123                 + "&fields=status&fields=admin_state_up&fields=sub_ports";
124         ITNeutronE2E.test_fetch(url, true, "Trunk Element Get with query Failed");
125     }
126
127     public void trunk_element_negative_get_test() {
128         String url = base + "/trunks/bc1a76cb-8767-4c3a-bb95-018b822f2130";
129         ITNeutronE2E.test_fetch(url, false, "Trunk Element Negative Get Failed");
130     }
131
132     public void trunk_delete_test() {
133         String url = base + "/trunks/c935240e-4aa6-496a-841c-d113c54499b9";
134         ITNeutronE2E.test_delete(url, "Trunk Element Delete Failed");
135     }
136
137     public static void runTests(String base) {
138         NeutronTrunkTests trunkTester = new NeutronTrunkTests(base);
139         trunkTester.trunk_collection_get_test();
140         String createJsonString = trunkTester.singleton_trunk_create_test();
141         trunkTester.singleton_trunk_get_with_one_query_item_test(createJsonString);
142         trunkTester.singleton_default_trunk_create_test();
143         trunkTester.default_trunk_content_validation_test();
144         trunkTester.bulk_trunk_create_test();
145         trunkTester.trunk_update_test();
146         trunkTester.trunk_bulk_get_test();
147         trunkTester.trunk_element_get_test();
148         trunkTester.trunk_element_get_test_with_added_query();
149         trunkTester.trunk_delete_test();
150         trunkTester.trunk_element_negative_get_test();
151     }
152 }