Bug 5540 - TableFeaturesResponseConvertor
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / TableFeaturesResponseConvertorTest.java
@@ -10,7 +10,9 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
 \r
 import java.math.BigInteger;\r
 import java.util.ArrayList;\r
+import java.util.Collections;\r
 import java.util.List;\r
+import java.util.Optional;\r
 import org.junit.Assert;\r
 import org.junit.Test;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;\r
@@ -83,6 +85,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Vlan
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanVid;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeatures;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeaturesBuilder;\r
 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
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;\r
@@ -103,14 +106,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table
 /**\r
  * @author michal.polkorab\r
  */\r
-public class TableFeaturesReplyConvertorTest {\r
+public class TableFeaturesResponseConvertorTest {\r
 \r
     /**\r
      * Incorrect / empty input test\r
      */\r
     @Test\r
     public void test() {\r
-        List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(null);\r
+        List<TableFeatures> list = convert(null);\r
         Assert.assertEquals("Returned list is not empty", 0, list.size());\r
     }\r
 \r
@@ -120,7 +123,7 @@ public class TableFeaturesReplyConvertorTest {
     @Test\r
     public void test2() {\r
         MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();\r
-        List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());\r
+        List<TableFeatures> list = convert(builder.build());\r
         Assert.assertEquals("Returned list is not empty", 0, list.size());\r
     }\r
 \r
@@ -144,7 +147,7 @@ public class TableFeaturesReplyConvertorTest {
         featuresBuilder.setMaxEntries(42L);\r
         features.add(featuresBuilder.build());\r
         builder.setTableFeatures(features);\r
-        List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());\r
+        List<TableFeatures> list = convert(builder.build());\r
         Assert.assertEquals("Returned empty list", 1, list.size());\r
         TableFeatures feature = list.get(0);\r
         Assert.assertEquals("Wrong table-id", 5, feature.getTableId().intValue());\r
@@ -500,11 +503,30 @@ public class TableFeaturesReplyConvertorTest {
 \r
         propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());\r
         properties.add(propBuilder.build());\r
+\r
+        /* -------------------------------------------------- */\r
+\r
+        propBuilder = new TableFeaturePropertiesBuilder();\r
+        propBuilder.setType(TableFeaturesPropType.OFPTFPTEXPERIMENTER);\r
+        oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
+        propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
+        properties.add(propBuilder.build());\r
+\r
+        /* -------------------------------------------------- */\r
+\r
+        propBuilder = new TableFeaturePropertiesBuilder();\r
+        propBuilder.setType(TableFeaturesPropType.OFPTFPTEXPERIMENTERMISS);\r
+        oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
+        propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
+        properties.add(propBuilder.build());\r
+\r
+        /* -------------------------------------------------- */\r
+\r
         featuresBuilder.setTableFeatureProperties(properties);\r
         features.add(featuresBuilder.build());\r
         builder.setTableFeatures(features);\r
 \r
-        List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());\r
+        List<TableFeatures> list = convert(builder.build());\r
 \r
         Assert.assertEquals("Returned empty list", 2, list.size());\r
         TableFeatures feature = list.get(0);\r
@@ -567,7 +589,7 @@ public class TableFeaturesReplyConvertorTest {
         Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite2), feature.getMetadataWrite());\r
         Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());\r
         Assert.assertEquals("Wrong max-entries", 24, feature.getMaxEntries().intValue());\r
-        Assert.assertEquals("Wrong properties", 10, feature.getTableProperties().getTableFeatureProperties().size());\r
+        Assert.assertEquals("Wrong properties", 12, feature.getTableProperties().getTableFeatureProperties().size());\r
         property = feature.getTableProperties().getTableFeatureProperties().get(0);\r
         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
                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
@@ -763,4 +785,9 @@ public class TableFeaturesReplyConvertorTest {
         return setFieldCaseBuilder.build();\r
     }\r
 \r
-}
+\r
+    private List<TableFeatures> convert(MultipartReplyTableFeatures features) {\r
+        Optional<List<TableFeatures>> listOptional = ConvertorManager.getInstance().convert(features);\r
+        return listOptional.orElse(Collections.emptyList());\r
+    }\r
+}
\ No newline at end of file