2 * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
\r
11 import java.math.BigInteger;
\r
12 import java.util.ArrayList;
\r
13 import java.util.List;
\r
15 import org.junit.Assert;
\r
16 import org.junit.Test;
\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ActionRelatedTableFeatureProperty;
\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ActionRelatedTableFeaturePropertyBuilder;
\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.InstructionRelatedTableFeatureProperty;
\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.InstructionRelatedTableFeaturePropertyBuilder;
\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NextTableRelatedTableFeatureProperty;
\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NextTableRelatedTableFeaturePropertyBuilder;
\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmRelatedTableFeatureProperty;
\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmRelatedTableFeaturePropertyBuilder;
\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.table.features.properties.container.table.feature.properties.NextTableIds;
\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.table.features.properties.container.table.feature.properties.NextTableIdsBuilder;
\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlIn;
\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut;
\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl;
\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group;
\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output;
\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopPbb;
\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopVlan;
\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushPbb;
\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan;
\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetField;
\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl;
\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl;
\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;
\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions;
\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions;
\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;
\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;
\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;
\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;
\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;
\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;
\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;
\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthDst;
\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthSrc;
\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPhyPort;
\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPort;
\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpEcn;
\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpProto;
\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Exthdr;
\r
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;
\r
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpSrc;
\r
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpDst;
\r
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;
\r
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;
\r
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;
\r
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;
\r
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;
\r
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeaturesBuilder;
\r
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeaturesBuilder;
\r
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;
\r
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeaturePropertiesBuilder;
\r
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch;
\r
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield;
\r
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfieldMiss;
\r
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions;
\r
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.InstructionsMiss;
\r
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match;
\r
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTable;
\r
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTableMiss;
\r
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Wildcards;
\r
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield;
\r
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss;
\r
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;
\r
84 * @author michal.polkorab
\r
87 public class TableFeaturesReplyConvertorTest {
\r
90 * Incorrect / empty input test
\r
93 public void test() {
\r
94 List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(null);
\r
95 Assert.assertEquals("Returned list is not empty", 0, list.size());
\r
99 * Incorrect / empty input test
\r
102 public void test2() {
\r
103 MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();
\r
104 List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());
\r
105 Assert.assertEquals("Returned list is not empty", 0, list.size());
\r
109 * Test correct input - without table properties
\r
112 public void testWithMPTableFeature() {
\r
113 MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();
\r
114 List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart
\r
115 .reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features
\r
116 .TableFeatures> features = new ArrayList<>();
\r
117 TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();
\r
118 featuresBuilder.setTableId((short) 5);
\r
119 featuresBuilder.setName("Aloha");
\r
120 byte[] metaMatch = new byte[]{0, 1, 2, 3, 4, 5, 6, 7};
\r
121 featuresBuilder.setMetadataMatch(metaMatch);
\r
122 byte[] metaWrite = new byte[]{8, 9, 10, 11, 12, 13, 14, 15};
\r
123 featuresBuilder.setMetadataWrite(metaWrite);
\r
124 featuresBuilder.setConfig(new TableConfig(false));
\r
125 featuresBuilder.setMaxEntries(42L);
\r
126 features.add(featuresBuilder.build());
\r
127 builder.setTableFeatures(features);
\r
128 List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());
\r
129 Assert.assertEquals("Returned empty list", 1, list.size());
\r
130 TableFeatures feature = list.get(0);
\r
131 Assert.assertEquals("Wrong table-id", 5, feature.getTableId().intValue());
\r
132 Assert.assertEquals("Wrong name", "Aloha", feature.getName());
\r
133 Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch), feature.getMetadataMatch());
\r
134 Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite), feature.getMetadataWrite());
\r
135 Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());
\r
136 Assert.assertEquals("Wrong max-entries", 42, feature.getMaxEntries().intValue());
\r
137 Assert.assertEquals("Wrong properties", 0, feature.getTableProperties().getTableFeatureProperties().size());
\r
141 * Test correct input
\r
144 public void testWithMPTableFeatureWithProperties() {
\r
145 MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();
\r
146 List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart
\r
147 .reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features
\r
148 .TableFeatures> features = new ArrayList<>();
\r
149 TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();
\r
150 featuresBuilder.setTableId((short) 5);
\r
151 featuresBuilder.setName("Aloha");
\r
152 byte[] metaMatch = new byte[]{0, 1, 2, 3, 4, 5, 6, 7};
\r
153 featuresBuilder.setMetadataMatch(metaMatch);
\r
154 byte[] metaWrite = new byte[]{8, 9, 10, 11, 12, 13, 14, 15};
\r
155 featuresBuilder.setMetadataWrite(metaWrite);
\r
156 featuresBuilder.setConfig(new TableConfig(false));
\r
157 featuresBuilder.setMaxEntries(42L);
\r
158 List<TableFeatureProperties> properties = new ArrayList<>();
\r
159 TableFeaturePropertiesBuilder propBuilder = new TableFeaturePropertiesBuilder();
\r
160 propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLES);
\r
161 NextTableRelatedTableFeaturePropertyBuilder nextPropBuilder =
\r
162 new NextTableRelatedTableFeaturePropertyBuilder();
\r
163 List<NextTableIds> nextIds = new ArrayList<>();
\r
164 nextIds.add(new NextTableIdsBuilder().setTableId((short) 1).build());
\r
165 nextIds.add(new NextTableIdsBuilder().setTableId((short) 2).build());
\r
166 nextPropBuilder.setNextTableIds(nextIds);
\r
167 propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());
\r
168 properties.add(propBuilder.build());
\r
169 propBuilder = new TableFeaturePropertiesBuilder();
\r
170 propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS);
\r
171 nextPropBuilder = new NextTableRelatedTableFeaturePropertyBuilder();
\r
172 nextIds = new ArrayList<>();
\r
173 nextIds.add(new NextTableIdsBuilder().setTableId((short) 3).build());
\r
174 nextPropBuilder.setNextTableIds(nextIds);
\r
175 propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());
\r
176 properties.add(propBuilder.build());
\r
177 propBuilder = new TableFeaturePropertiesBuilder();
\r
178 propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS);
\r
179 InstructionRelatedTableFeaturePropertyBuilder insPropBuilder =
\r
180 new InstructionRelatedTableFeaturePropertyBuilder();
\r
181 List<Instruction> insIds = new ArrayList<>();
\r
182 InstructionBuilder insBuilder = new InstructionBuilder();
\r
183 insBuilder.setType(WriteActions.class);
\r
184 insIds.add(insBuilder.build());
\r
185 insBuilder = new InstructionBuilder();
\r
186 insBuilder.setType(GotoTable.class);
\r
187 insIds.add(insBuilder.build());
\r
188 insPropBuilder.setInstruction(insIds);
\r
189 propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());
\r
190 properties.add(propBuilder.build());
\r
191 propBuilder = new TableFeaturePropertiesBuilder();
\r
192 propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS);
\r
193 insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();
\r
194 insIds = new ArrayList<>();
\r
195 insBuilder = new InstructionBuilder();
\r
196 insBuilder.setType(WriteMetadata.class);
\r
197 insIds.add(insBuilder.build());
\r
198 insBuilder = new InstructionBuilder();
\r
199 insBuilder.setType(ApplyActions.class);
\r
200 insIds.add(insBuilder.build());
\r
201 insBuilder = new InstructionBuilder();
\r
202 insBuilder.setType(Meter.class);
\r
203 insIds.add(insBuilder.build());
\r
204 insBuilder = new InstructionBuilder();
\r
205 insBuilder.setType(ClearActions.class);
\r
206 insIds.add(insBuilder.build());
\r
207 insBuilder = new InstructionBuilder();
\r
208 insBuilder.setType(GotoTable.class);
\r
209 insIds.add(insBuilder.build());
\r
210 insPropBuilder.setInstruction(insIds);
\r
211 propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());
\r
212 properties.add(propBuilder.build());
\r
213 featuresBuilder.setTableFeatureProperties(properties);
\r
214 features.add(featuresBuilder.build());
\r
215 featuresBuilder = new TableFeaturesBuilder();
\r
216 featuresBuilder.setTableId((short) 6);
\r
217 featuresBuilder.setName("Mahalo");
\r
218 byte[] metaMatch2 = new byte[]{8, 9, 10, 11, 12, 13, 14, 15};
\r
219 featuresBuilder.setMetadataMatch(metaMatch2);
\r
220 byte[] metaWrite2 = new byte[]{0, 1, 2, 3, 4, 5, 6, 7};
\r
221 featuresBuilder.setMetadataWrite(metaWrite2);
\r
222 featuresBuilder.setConfig(new TableConfig(false));
\r
223 featuresBuilder.setMaxEntries(24L);
\r
224 properties = new ArrayList<>();
\r
225 propBuilder = new TableFeaturePropertiesBuilder();
\r
226 propBuilder.setType(TableFeaturesPropType.OFPTFPTMATCH);
\r
227 OxmRelatedTableFeaturePropertyBuilder oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
\r
228 List<MatchEntries> entries = new ArrayList<>();
\r
229 MatchEntriesBuilder entriesBuilder = new MatchEntriesBuilder();
\r
230 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
231 entriesBuilder.setOxmMatchField(InPhyPort.class);
\r
232 entriesBuilder.setHasMask(false);
\r
233 entries.add(entriesBuilder.build());
\r
234 entriesBuilder = new MatchEntriesBuilder();
\r
235 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
236 entriesBuilder.setOxmMatchField(InPort.class);
\r
237 entriesBuilder.setHasMask(false);
\r
238 entries.add(entriesBuilder.build());
\r
239 oxmBuilder.setMatchEntries(entries);
\r
240 propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
\r
241 properties.add(propBuilder.build());
\r
242 propBuilder = new TableFeaturePropertiesBuilder();
\r
243 propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELD);
\r
244 oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
\r
245 entries = new ArrayList<>();
\r
246 entriesBuilder = new MatchEntriesBuilder();
\r
247 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
248 entriesBuilder.setOxmMatchField(IpProto.class);
\r
249 entriesBuilder.setHasMask(false);
\r
250 entries.add(entriesBuilder.build());
\r
251 entriesBuilder = new MatchEntriesBuilder();
\r
252 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
253 entriesBuilder.setOxmMatchField(IpEcn.class);
\r
254 entriesBuilder.setHasMask(false);
\r
255 entries.add(entriesBuilder.build());
\r
256 oxmBuilder.setMatchEntries(entries);
\r
257 propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
\r
258 properties.add(propBuilder.build());
\r
259 propBuilder = new TableFeaturePropertiesBuilder();
\r
260 propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELD);
\r
261 oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
\r
262 entries = new ArrayList<>();
\r
263 entriesBuilder = new MatchEntriesBuilder();
\r
264 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
265 entriesBuilder.setOxmMatchField(Ipv6Exthdr.class);
\r
266 entriesBuilder.setHasMask(false);
\r
267 entries.add(entriesBuilder.build());
\r
268 entriesBuilder = new MatchEntriesBuilder();
\r
269 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
270 entriesBuilder.setOxmMatchField(VlanVid.class);
\r
271 entriesBuilder.setHasMask(false);
\r
272 entries.add(entriesBuilder.build());
\r
273 oxmBuilder.setMatchEntries(entries);
\r
274 propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
\r
275 properties.add(propBuilder.build());
\r
276 propBuilder = new TableFeaturePropertiesBuilder();
\r
277 propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELDMISS);
\r
278 oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
\r
279 entries = new ArrayList<>();
\r
280 entriesBuilder = new MatchEntriesBuilder();
\r
281 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
282 entriesBuilder.setOxmMatchField(VlanPcp.class);
\r
283 entriesBuilder.setHasMask(false);
\r
284 entries.add(entriesBuilder.build());
\r
285 entriesBuilder = new MatchEntriesBuilder();
\r
286 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
287 entriesBuilder.setOxmMatchField(TcpSrc.class);
\r
288 entriesBuilder.setHasMask(false);
\r
289 entries.add(entriesBuilder.build());
\r
290 oxmBuilder.setMatchEntries(entries);
\r
291 propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
\r
292 properties.add(propBuilder.build());
\r
293 propBuilder = new TableFeaturePropertiesBuilder();
\r
294 propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELDMISS);
\r
295 oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
\r
296 entries = new ArrayList<>();
\r
297 entriesBuilder = new MatchEntriesBuilder();
\r
298 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
299 entriesBuilder.setOxmMatchField(UdpSrc.class);
\r
300 entriesBuilder.setHasMask(false);
\r
301 entries.add(entriesBuilder.build());
\r
302 entriesBuilder = new MatchEntriesBuilder();
\r
303 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
304 entriesBuilder.setOxmMatchField(UdpDst.class);
\r
305 entriesBuilder.setHasMask(false);
\r
306 entries.add(entriesBuilder.build());
\r
307 oxmBuilder.setMatchEntries(entries);
\r
308 propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
\r
309 properties.add(propBuilder.build());
\r
310 propBuilder = new TableFeaturePropertiesBuilder();
\r
311 propBuilder.setType(TableFeaturesPropType.OFPTFPTWILDCARDS);
\r
312 oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
\r
313 entries = new ArrayList<>();
\r
314 entriesBuilder = new MatchEntriesBuilder();
\r
315 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
316 entriesBuilder.setOxmMatchField(EthSrc.class);
\r
317 entriesBuilder.setHasMask(false);
\r
318 entries.add(entriesBuilder.build());
\r
319 entriesBuilder = new MatchEntriesBuilder();
\r
320 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
321 entriesBuilder.setOxmMatchField(EthDst.class);
\r
322 entriesBuilder.setHasMask(false);
\r
323 entries.add(entriesBuilder.build());
\r
324 oxmBuilder.setMatchEntries(entries);
\r
325 propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
\r
326 properties.add(propBuilder.build());
\r
327 propBuilder = new TableFeaturePropertiesBuilder();
\r
328 propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONS);
\r
329 ActionRelatedTableFeaturePropertyBuilder actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
\r
330 List<Action> actions = new ArrayList<>();
\r
331 ActionBuilder actionBuilder = new ActionBuilder();
\r
332 actionBuilder.setType(Output.class);
\r
333 actions.add(actionBuilder.build());
\r
334 actionBuilder = new ActionBuilder();
\r
335 actionBuilder.setType(PopPbb.class);
\r
336 actions.add(actionBuilder.build());
\r
337 actionBuilder = new ActionBuilder();
\r
338 actionBuilder.setType(SetNwTtl.class);
\r
339 actions.add(actionBuilder.build());
\r
340 actBuilder.setAction(actions);
\r
341 propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
\r
342 properties.add(propBuilder.build());
\r
343 propBuilder = new TableFeaturePropertiesBuilder();
\r
344 propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONSMISS);
\r
345 actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
\r
346 actions = new ArrayList<>();
\r
347 actionBuilder = new ActionBuilder();
\r
348 actionBuilder.setType(Group.class);
\r
349 actions.add(actionBuilder.build());
\r
350 actionBuilder = new ActionBuilder();
\r
351 actionBuilder.setType(CopyTtlIn.class);
\r
352 actions.add(actionBuilder.build());
\r
353 actionBuilder = new ActionBuilder();
\r
354 actionBuilder.setType(CopyTtlOut.class);
\r
355 actions.add(actionBuilder.build());
\r
356 actBuilder.setAction(actions);
\r
357 propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
\r
358 properties.add(propBuilder.build());
\r
359 propBuilder = new TableFeaturePropertiesBuilder();
\r
360 propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITEACTIONS);
\r
361 actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
\r
362 actions = new ArrayList<>();
\r
363 actionBuilder = new ActionBuilder();
\r
364 actionBuilder.setType(SetMplsTtl.class);
\r
365 actions.add(actionBuilder.build());
\r
366 actionBuilder = new ActionBuilder();
\r
367 actionBuilder.setType(DecMplsTtl.class);
\r
368 actions.add(actionBuilder.build());
\r
369 actionBuilder = new ActionBuilder();
\r
370 actionBuilder.setType(PushVlan.class);
\r
371 actions.add(actionBuilder.build());
\r
372 actBuilder.setAction(actions);
\r
373 propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
\r
374 properties.add(propBuilder.build());
\r
375 propBuilder = new TableFeaturePropertiesBuilder();
\r
376 propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITEACTIONSMISS);
\r
377 actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
\r
378 actions = new ArrayList<>();
\r
379 actionBuilder = new ActionBuilder();
\r
380 actionBuilder.setType(PopVlan.class);
\r
381 actions.add(actionBuilder.build());
\r
382 actionBuilder = new ActionBuilder();
\r
383 actionBuilder.setType(PushPbb.class);
\r
384 actions.add(actionBuilder.build());
\r
385 actionBuilder = new ActionBuilder();
\r
386 actionBuilder.setType(SetField.class);
\r
387 actions.add(actionBuilder.build());
\r
388 actBuilder.setAction(actions);
\r
389 propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
\r
390 properties.add(propBuilder.build());
\r
391 featuresBuilder.setTableFeatureProperties(properties);
\r
392 features.add(featuresBuilder.build());
\r
393 builder.setTableFeatures(features);
\r
395 List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());
\r
397 Assert.assertEquals("Returned empty list", 2, list.size());
\r
398 TableFeatures feature = list.get(0);
\r
399 Assert.assertEquals("Wrong table-id", 5, feature.getTableId().intValue());
\r
400 Assert.assertEquals("Wrong name", "Aloha", feature.getName());
\r
401 Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch), feature.getMetadataMatch());
\r
402 Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite), feature.getMetadataWrite());
\r
403 Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());
\r
404 Assert.assertEquals("Wrong max-entries", 42, feature.getMaxEntries().intValue());
\r
405 Assert.assertEquals("Wrong properties", 4, feature.getTableProperties().getTableFeatureProperties().size());
\r
406 org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.table.features.table.properties
\r
407 .TableFeatureProperties property = feature.getTableProperties().getTableFeatureProperties().get(0);
\r
408 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTable",
\r
409 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
410 NextTable propType = (NextTable) property.getTableFeaturePropType();
\r
411 List<Short> ids = propType.getTables().getTableIds();
\r
412 Assert.assertEquals("Wrong next table-id size", 2, ids.size());
\r
413 Assert.assertEquals("Wrong next-registry-id", 1, ids.get(0).intValue());
\r
414 Assert.assertEquals("Wrong next-registry-id", 2, ids.get(1).intValue());
\r
415 property = feature.getTableProperties().getTableFeatureProperties().get(1);
\r
416 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTableMiss",
\r
417 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
418 NextTableMiss propType2 = (NextTableMiss) property.getTableFeaturePropType();
\r
419 ids = propType2.getTablesMiss().getTableIds();
\r
420 Assert.assertEquals("Wrong next table-id size", 1, ids.size());
\r
421 Assert.assertEquals("Wrong next-registry-id", 3, ids.get(0).intValue());
\r
422 property = feature.getTableProperties().getTableFeatureProperties().get(2);
\r
423 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions",
\r
424 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
425 Instructions propType3 = (Instructions) property.getTableFeaturePropType();
\r
426 List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list
\r
427 .Instruction> instructionIds = propType3.getInstructions().getInstruction();
\r
428 Assert.assertEquals("Wrong instruction-ids size", 2, instructionIds.size());
\r
429 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteActionsCase",
\r
430 instructionIds.get(0).getInstruction().getImplementedInterface().getName());
\r
431 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase",
\r
432 instructionIds.get(1).getInstruction().getImplementedInterface().getName());
\r
433 property = feature.getTableProperties().getTableFeatureProperties().get(3);
\r
434 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.InstructionsMiss",
\r
435 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
436 InstructionsMiss propType4 = (InstructionsMiss) property.getTableFeaturePropType();
\r
437 instructionIds = propType4.getInstructionsMiss().getInstruction();
\r
438 Assert.assertEquals("Wrong instruction-ids size", 5, instructionIds.size());
\r
439 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase",
\r
440 instructionIds.get(0).getInstruction().getImplementedInterface().getName());
\r
441 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase",
\r
442 instructionIds.get(1).getInstruction().getImplementedInterface().getName());
\r
443 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.MeterCase",
\r
444 instructionIds.get(2).getInstruction().getImplementedInterface().getName());
\r
445 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCase",
\r
446 instructionIds.get(3).getInstruction().getImplementedInterface().getName());
\r
447 Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase",
\r
448 instructionIds.get(4).getInstruction().getImplementedInterface().getName());
\r
449 feature = list.get(1);
\r
450 Assert.assertEquals("Wrong table-id", 6, feature.getTableId().intValue());
\r
451 Assert.assertEquals("Wrong name", "Mahalo", feature.getName());
\r
452 Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch2), feature.getMetadataMatch());
\r
453 Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite2), feature.getMetadataWrite());
\r
454 Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());
\r
455 Assert.assertEquals("Wrong max-entries", 24, feature.getMaxEntries().intValue());
\r
456 Assert.assertEquals("Wrong properties", 10, feature.getTableProperties().getTableFeatureProperties().size());
\r
457 property = feature.getTableProperties().getTableFeatureProperties().get(0);
\r
458 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match",
\r
459 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
460 Match propType5 = (Match) property.getTableFeaturePropType();
\r
461 List<SetFieldMatch> fieldMatch = propType5.getMatchSetfield().getSetFieldMatch();
\r
462 Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
\r
463 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPhyPort",
\r
464 fieldMatch.get(0).getMatchType().getName());
\r
465 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPort",
\r
466 fieldMatch.get(1).getMatchType().getName());
\r
467 property = feature.getTableProperties().getTableFeatureProperties().get(1);
\r
468 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield",
\r
469 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
470 ApplySetfield propType6 = (ApplySetfield) property.getTableFeaturePropType();
\r
471 fieldMatch = propType6.getApplySetfield().getSetFieldMatch();
\r
472 Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
\r
473 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpProto",
\r
474 fieldMatch.get(0).getMatchType().getName());
\r
475 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpEcn",
\r
476 fieldMatch.get(1).getMatchType().getName());
\r
477 property = feature.getTableProperties().getTableFeatureProperties().get(2);
\r
478 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield",
\r
479 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
480 WriteSetfield propType7 = (WriteSetfield) property.getTableFeaturePropType();
\r
481 fieldMatch = propType7.getWriteSetfield().getSetFieldMatch();
\r
482 Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
\r
483 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Exthdr",
\r
484 fieldMatch.get(0).getMatchType().getName());
\r
485 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanVid",
\r
486 fieldMatch.get(1).getMatchType().getName());
\r
487 property = feature.getTableProperties().getTableFeatureProperties().get(3);
\r
488 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss",
\r
489 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
490 WriteSetfieldMiss propType8 = (WriteSetfieldMiss) property.getTableFeaturePropType();
\r
491 fieldMatch = propType8.getWriteSetfieldMiss().getSetFieldMatch();
\r
492 Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
\r
493 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanPcp",
\r
494 fieldMatch.get(0).getMatchType().getName());
\r
495 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpSrc",
\r
496 fieldMatch.get(1).getMatchType().getName());
\r
497 property = feature.getTableProperties().getTableFeatureProperties().get(4);
\r
498 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfieldMiss",
\r
499 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
500 ApplySetfieldMiss propType9 = (ApplySetfieldMiss) property.getTableFeaturePropType();
\r
501 fieldMatch = propType9.getApplySetfieldMiss().getSetFieldMatch();
\r
502 Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
\r
503 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpSrc",
\r
504 fieldMatch.get(0).getMatchType().getName());
\r
505 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpDst",
\r
506 fieldMatch.get(1).getMatchType().getName());
\r
507 property = feature.getTableProperties().getTableFeatureProperties().get(5);
\r
508 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Wildcards",
\r
509 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
510 Wildcards propType10 = (Wildcards) property.getTableFeaturePropType();
\r
511 fieldMatch = propType10.getWildcardSetfield().getSetFieldMatch();
\r
512 Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
\r
513 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthSrc",
\r
514 fieldMatch.get(0).getMatchType().getName());
\r
515 Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst",
\r
516 fieldMatch.get(1).getMatchType().getName());
\r
517 property = feature.getTableProperties().getTableFeatureProperties().get(6);
\r
518 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions",
\r
519 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
520 org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
521 .ApplyActions propType11 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions) property.getTableFeaturePropType();
\r
522 List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = propType11.getApplyActions().getAction();
\r
523 Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
\r
524 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCase",
\r
525 actionsList.get(0).getAction().getImplementedInterface().getName());
\r
526 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopPbbActionCase",
\r
527 actionsList.get(1).getAction().getImplementedInterface().getName());
\r
528 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlActionCase",
\r
529 actionsList.get(2).getAction().getImplementedInterface().getName());
\r
530 property = feature.getTableProperties().getTableFeatureProperties().get(7);
\r
531 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActionsMiss",
\r
532 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
533 org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
534 .ApplyActionsMiss propType12 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
535 .ApplyActionsMiss) property.getTableFeaturePropType();
\r
536 actionsList = propType12.getApplyActionsMiss().getAction();
\r
537 Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
\r
538 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCase",
\r
539 actionsList.get(0).getAction().getImplementedInterface().getName());
\r
540 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCase",
\r
541 actionsList.get(1).getAction().getImplementedInterface().getName());
\r
542 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOutCase",
\r
543 actionsList.get(2).getAction().getImplementedInterface().getName());
\r
544 property = feature.getTableProperties().getTableFeatureProperties().get(8);
\r
545 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActions",
\r
546 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
547 org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
548 .WriteActions propType13 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
549 .WriteActions) property.getTableFeaturePropType();
\r
550 actionsList = propType13.getWriteActions().getAction();
\r
551 Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
\r
552 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCase",
\r
553 actionsList.get(0).getAction().getImplementedInterface().getName());
\r
554 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecMplsTtlCase",
\r
555 actionsList.get(1).getAction().getImplementedInterface().getName());
\r
556 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanActionCase",
\r
557 actionsList.get(2).getAction().getImplementedInterface().getName());
\r
558 property = feature.getTableProperties().getTableFeatureProperties().get(9);
\r
559 Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActionsMiss",
\r
560 property.getTableFeaturePropType().getImplementedInterface().getName());
\r
561 org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
562 .WriteActionsMiss propType14 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type
\r
563 .WriteActionsMiss) property.getTableFeaturePropType();
\r
564 actionsList = propType14.getWriteActionsMiss().getAction();
\r
565 Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
\r
566 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCase",
\r
567 actionsList.get(0).getAction().getImplementedInterface().getName());
\r
568 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushPbbActionCase",
\r
569 actionsList.get(1).getAction().getImplementedInterface().getName());
\r
570 Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCase",
\r
571 actionsList.get(2).getAction().getImplementedInterface().getName());
\r