Fix checkstyle
[openflowplugin.git] / extension / openflowplugin-extension-nicira / src / test / java / org / opendaylight / openflowplugin / extension / vendor / nicira / convertor / action / ConntrackConvertorTest.java
1 /*
2  * Copyright (c) 2016, 2017 Cisco Systems, Inc. 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 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action;
9
10 import java.util.ArrayList;
11 import java.util.List;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionConntrack;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionConntrackBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.conntrack.grouping.NxActionConntrackBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flows.statistics.update.flow.and.statistics.map.list.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionConntrackNotifFlowsStatisticsUpdateApplyActionsCase;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.flows.statistics.update.flow.and.statistics.map.list.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionConntrackNotifFlowsStatisticsUpdateWriteActionsCase;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.get.flow.statistics.output.flow.and.statistics.map.list.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionConntrackNotifDirectStatisticsUpdateApplyActionsCase;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.get.flow.statistics.output.flow.and.statistics.map.list.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionConntrackNotifDirectStatisticsUpdateWriteActionsCase;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.group.desc.stats.updated.group.desc.stats.buckets.bucket.action.action.NxActionConntrackNotifGroupDescStatsUpdatedCase;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionConntrackNodesNodeTableFlowWriteActionsCase;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionConntrackNodesNodeTableFlowWriteActionsCaseBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.conntrack.grouping.NxConntrackBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.conntrack.grouping.nx.conntrack.CtActions;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.conntrack.grouping.nx.conntrack.CtActionsBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.ofpact.actions.ofpact.actions.NxActionNatCase;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.ofpact.actions.ofpact.actions.NxActionNatCaseBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.ofpact.actions.ofpact.actions.nx.action.nat._case.NxActionNat;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.ofpact.actions.ofpact.actions.nx.action.nat._case.NxActionNatBuilder;
36
37 /**
38  * Test for {@link ConntrackConvertor}.
39  */
40 public class ConntrackConvertorTest {
41
42     private ConntrackConvertor conntrackConvertor;
43
44     @Before
45     public void setUp() {
46         conntrackConvertor = new ConntrackConvertor();
47     }
48
49     @Test
50     public void testConvertToOfJava() {
51
52         final NxActionNatBuilder nxActionNatBuilder = new NxActionNatBuilder()
53                 .setFlags(1)
54                 .setRangePresent(2)
55                 .setIpAddressMin(IpAddressBuilder.getDefaultInstance("192.168.0.0"))
56                 .setIpAddressMin(IpAddressBuilder.getDefaultInstance("192.168.10.0"))
57                 .setPortMin(3000)
58                 .setPortMax(4000);
59         final CtActionsBuilder ctActionsBuilder = new CtActionsBuilder().setOfpactActions(new NxActionNatCaseBuilder()
60                 .setNxActionNat(nxActionNatBuilder.build()).build());
61         List<CtActions> ctAction = new ArrayList<>();
62         ctAction.add(ctActionsBuilder.build());
63         final NxConntrackBuilder nxConntrackBuilder = new NxConntrackBuilder()
64                 .setConntrackZone(1)
65                 .setFlags(1)
66                 .setRecircTable((short) 1)
67                 .setZoneSrc(1L)
68                 .setCtActions(ctAction);
69
70         final NxActionConntrackNodesNodeTableFlowWriteActionsCaseBuilder nxActionConntrackBuilder =
71                 new NxActionConntrackNodesNodeTableFlowWriteActionsCaseBuilder()
72                         .setNxConntrack(nxConntrackBuilder.build());
73
74         final NxActionConntrackNodesNodeTableFlowWriteActionsCase actionsCase = nxActionConntrackBuilder.build();
75         final ActionConntrack actionConntrack = (ActionConntrack) conntrackConvertor.convert(actionsCase)
76                 .getActionChoice();
77
78         Assert.assertEquals(actionsCase.getNxConntrack().getConntrackZone(), actionConntrack.getNxActionConntrack()
79                 .getConntrackZone());
80         Assert.assertEquals(actionsCase.getNxConntrack().getFlags(), actionConntrack.getNxActionConntrack().getFlags());
81         Assert.assertEquals(actionsCase.getNxConntrack().getRecircTable(), actionConntrack.getNxActionConntrack()
82                 .getRecircTable());
83         Assert.assertEquals(actionsCase.getNxConntrack().getZoneSrc(), actionConntrack.getNxActionConntrack()
84                 .getZoneSrc());
85
86         NxActionNat natactionCase = ((NxActionNatCase) actionsCase.getNxConntrack().getCtActions().get(0)
87                 .getOfpactActions()).getNxActionNat();
88         org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofpact.actions.ofpact.actions
89             .nx.action.nat._case.NxActionNat nataction = ((org.opendaylight
90                     .yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofpact.actions.ofpact.actions
91                     .NxActionNatCase) actionConntrack.getNxActionConntrack().getCtActions().get(0).getOfpactActions())
92             .getNxActionNat();
93         Assert.assertEquals(natactionCase.getFlags(), nataction.getFlags());
94         Assert.assertEquals(natactionCase.getRangePresent(), nataction.getRangePresent());
95         Assert.assertEquals(natactionCase.getIpAddressMin().getIpv4Address().getValue(), nataction.getIpAddressMin()
96             .getIpv4Address().getValue());
97         Assert.assertEquals(natactionCase.getIpAddressMin().getIpv4Address().getValue(), nataction.getIpAddressMin()
98             .getIpv4Address().getValue());
99         Assert.assertEquals(natactionCase.getPortMin(), nataction.getPortMin());
100         Assert.assertEquals(natactionCase.getPortMax(), nataction.getPortMax());
101
102     }
103
104     @Test
105     public void testConvertFromOfJava() {
106
107         org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofpact.actions.ofpact.actions
108             .nx.action.nat._case.NxActionNatBuilder nxActionNatBuilder = new org.opendaylight.yang.gen.v1.urn
109             .opendaylight.openflowjava.nx.action.rev140421.ofpact.actions.ofpact.actions.nx.action.nat._case
110             .NxActionNatBuilder()
111             .setFlags(1)
112             .setRangePresent(2)
113             .setIpAddressMin(IpAddressBuilder.getDefaultInstance("192.168.0.0"))
114             .setIpAddressMax(IpAddressBuilder.getDefaultInstance("192.168.10.0"))
115             .setPortMin(3000)
116             .setPortMax(4000);
117         org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.conntrack.grouping
118             .nx.action.conntrack.CtActionsBuilder ctActionsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight
119             .openflowjava.nx.action.rev140421.ofj.nx.action.conntrack.grouping.nx.action.conntrack.CtActionsBuilder()
120             .setOfpactActions(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofpact
121                     .actions.ofpact.actions.NxActionNatCaseBuilder().setNxActionNat(nxActionNatBuilder.build())
122                     .build());
123         List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.conntrack
124             .grouping.nx.action.conntrack.CtActions> ctActions = new ArrayList<>();
125         ctActions.add(ctActionsBuilder.build());
126         final NxActionConntrackBuilder nxActionConntrackBuilder = new NxActionConntrackBuilder()
127                 .setConntrackZone(1)
128                 .setFlags(1)
129                 .setRecircTable((short) 1)
130                 .setZoneSrc(1L)
131                 .setCtActions(ctActions);
132
133         final ActionConntrackBuilder actionConntrackBuilder = new ActionConntrackBuilder()
134                 .setNxActionConntrack(nxActionConntrackBuilder.build());
135
136         final ActionBuilder actionBuilder = new ActionBuilder()
137                 .setActionChoice(actionConntrackBuilder.build());
138
139         final Action groupingAction = actionBuilder.build();
140
141         final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action
142                 = conntrackConvertor.convert(groupingAction, ActionPath.INVENTORY_FLOWNODE_TABLE_WRITE_ACTIONS);
143         final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action1
144                 = conntrackConvertor.convert(groupingAction, ActionPath.FLOWS_STATISTICS_UPDATE_WRITE_ACTIONS);
145         final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action2
146                 = conntrackConvertor.convert(groupingAction, ActionPath.FLOWS_STATISTICS_UPDATE_APPLY_ACTIONS);
147         final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action3
148                 = conntrackConvertor.convert(groupingAction, ActionPath.GROUP_DESC_STATS_UPDATED_BUCKET_ACTION);
149         final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action4
150                 = conntrackConvertor.convert(groupingAction, ActionPath.FLOWS_STATISTICS_RPC_WRITE_ACTIONS);
151         final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action5
152                 = conntrackConvertor.convert(groupingAction, ActionPath.FLOWS_STATISTICS_RPC_APPLY_ACTIONS);
153
154         Assert.assertEquals(1, ((NxActionConntrackNodesNodeTableFlowWriteActionsCase) action).getNxConntrack()
155                 .getConntrackZone().longValue());
156         Assert.assertEquals(1L, ((NxActionConntrackNodesNodeTableFlowWriteActionsCase) action).getNxConntrack()
157                 .getZoneSrc().longValue());
158         Assert.assertEquals(1, ((NxActionConntrackNodesNodeTableFlowWriteActionsCase) action).getNxConntrack()
159                 .getRecircTable().intValue());
160         Assert.assertEquals(1, ((NxActionConntrackNodesNodeTableFlowWriteActionsCase) action).getNxConntrack()
161                 .getFlags().intValue());
162
163         NxActionNat natActionCase = ((NxActionNatCase)((NxActionConntrackNodesNodeTableFlowWriteActionsCase)action)
164                .getNxConntrack().getCtActions().get(0).getOfpactActions()).getNxActionNat();
165         Assert.assertEquals(1, natActionCase.getFlags().shortValue());
166         Assert.assertEquals(2, natActionCase.getRangePresent().intValue());
167         Assert.assertEquals("192.168.0.0", natActionCase.getIpAddressMin().getIpv4Address().getValue());
168         Assert.assertEquals("192.168.10.0", natActionCase.getIpAddressMax().getIpv4Address().getValue());
169         Assert.assertEquals(3000, natActionCase.getPortMin().shortValue());
170         Assert.assertEquals(4000, natActionCase.getPortMax().shortValue());
171
172         Assert.assertEquals(1, ((NxActionConntrackNotifFlowsStatisticsUpdateWriteActionsCase) action1)
173                 .getNxConntrack().getConntrackZone().longValue());
174         Assert.assertEquals(1L, ((NxActionConntrackNotifFlowsStatisticsUpdateWriteActionsCase) action1)
175                 .getNxConntrack().getZoneSrc().longValue());
176         Assert.assertEquals(1, ((NxActionConntrackNotifFlowsStatisticsUpdateWriteActionsCase) action1)
177                 .getNxConntrack().getRecircTable().intValue());
178         Assert.assertEquals(1, ((NxActionConntrackNotifFlowsStatisticsUpdateWriteActionsCase) action1)
179                 .getNxConntrack().getFlags().intValue());
180
181         NxActionNat natActionCase1 = ((NxActionNatCase)((NxActionConntrackNodesNodeTableFlowWriteActionsCase)action)
182                 .getNxConntrack().getCtActions().get(0).getOfpactActions()).getNxActionNat();
183         Assert.assertEquals(1, natActionCase1.getFlags().shortValue());
184         Assert.assertEquals(2, natActionCase1.getRangePresent().intValue());
185         Assert.assertEquals("192.168.0.0", natActionCase1.getIpAddressMin().getIpv4Address().getValue());
186         Assert.assertEquals("192.168.10.0", natActionCase1.getIpAddressMax().getIpv4Address().getValue());
187         Assert.assertEquals(3000, natActionCase1.getPortMin().shortValue());
188         Assert.assertEquals(4000, natActionCase1.getPortMax().shortValue());
189
190         Assert.assertEquals(1, ((NxActionConntrackNotifFlowsStatisticsUpdateApplyActionsCase) action2)
191                 .getNxConntrack().getConntrackZone().longValue());
192         Assert.assertEquals(1L, ((NxActionConntrackNotifFlowsStatisticsUpdateApplyActionsCase) action2)
193                 .getNxConntrack().getZoneSrc().longValue());
194         Assert.assertEquals(1, ((NxActionConntrackNotifFlowsStatisticsUpdateApplyActionsCase) action2)
195                 .getNxConntrack().getRecircTable().intValue());
196         Assert.assertEquals(1, ((NxActionConntrackNotifFlowsStatisticsUpdateApplyActionsCase) action2)
197                 .getNxConntrack().getFlags().intValue());
198
199         NxActionNat natActionCase2 = ((NxActionNatCase)((NxActionConntrackNodesNodeTableFlowWriteActionsCase)action)
200                 .getNxConntrack().getCtActions().get(0).getOfpactActions()).getNxActionNat();
201         Assert.assertEquals(1, natActionCase2.getFlags().shortValue());
202         Assert.assertEquals(2, natActionCase2.getRangePresent().intValue());
203         Assert.assertEquals("192.168.0.0", natActionCase2.getIpAddressMin().getIpv4Address().getValue());
204         Assert.assertEquals("192.168.10.0", natActionCase2.getIpAddressMax().getIpv4Address().getValue());
205         Assert.assertEquals(3000, natActionCase2.getPortMin().shortValue());
206         Assert.assertEquals(4000, natActionCase2.getPortMax().shortValue());
207
208         NxActionNat natActionCase3 = ((NxActionNatCase)((NxActionConntrackNodesNodeTableFlowWriteActionsCase)action)
209                 .getNxConntrack().getCtActions().get(0).getOfpactActions()).getNxActionNat();
210         Assert.assertEquals(1, natActionCase3.getFlags().shortValue());
211         Assert.assertEquals(2, natActionCase3.getRangePresent().intValue());
212         Assert.assertEquals("192.168.0.0", natActionCase3.getIpAddressMin().getIpv4Address().getValue());
213         Assert.assertEquals("192.168.10.0", natActionCase3.getIpAddressMax().getIpv4Address().getValue());
214         Assert.assertEquals(3000, natActionCase3.getPortMin().shortValue());
215         Assert.assertEquals(4000, natActionCase3.getPortMax().shortValue());
216
217         Assert.assertEquals(1, ((NxActionConntrackNotifGroupDescStatsUpdatedCase) action3).getNxConntrack()
218                 .getConntrackZone().longValue());
219         Assert.assertEquals(1L, ((NxActionConntrackNotifGroupDescStatsUpdatedCase) action3).getNxConntrack()
220                 .getZoneSrc().longValue());
221         Assert.assertEquals(1, ((NxActionConntrackNotifGroupDescStatsUpdatedCase) action3).getNxConntrack()
222                 .getRecircTable().intValue());
223         Assert.assertEquals(1, ((NxActionConntrackNotifGroupDescStatsUpdatedCase) action3).getNxConntrack()
224                 .getFlags().intValue());
225
226         Assert.assertEquals(1, ((NxActionConntrackNotifDirectStatisticsUpdateWriteActionsCase) action4)
227                 .getNxConntrack().getConntrackZone().longValue());
228         Assert.assertEquals(1L, ((NxActionConntrackNotifDirectStatisticsUpdateWriteActionsCase) action4)
229                 .getNxConntrack().getZoneSrc().longValue());
230         Assert.assertEquals(1, ((NxActionConntrackNotifDirectStatisticsUpdateWriteActionsCase) action4)
231                 .getNxConntrack().getRecircTable().intValue());
232         Assert.assertEquals(1, ((NxActionConntrackNotifDirectStatisticsUpdateWriteActionsCase) action4)
233                 .getNxConntrack().getFlags().intValue());
234
235         Assert.assertEquals(1, ((NxActionConntrackNotifDirectStatisticsUpdateApplyActionsCase) action5).getNxConntrack()
236                 .getConntrackZone().longValue());
237         Assert.assertEquals(1L, ((NxActionConntrackNotifDirectStatisticsUpdateApplyActionsCase) action5)
238                 .getNxConntrack().getZoneSrc().longValue());
239         Assert.assertEquals(1, ((NxActionConntrackNotifDirectStatisticsUpdateApplyActionsCase) action5).getNxConntrack()
240                 .getRecircTable().intValue());
241         Assert.assertEquals(1, ((NxActionConntrackNotifDirectStatisticsUpdateApplyActionsCase) action5).getNxConntrack()
242                 .getFlags().intValue());
243     }
244 }