Default experimenters moved to separate bundle + unit tests
[openflowjava.git] / openflow-protocol-ext / src / test / java / org / opendaylight / openflowjava / protocol / ext / deserialization / OF13TableFeaturesExperimenterDeserializerTest.java
1 /*\r
2  * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\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
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.ext.deserialization;\r
10 \r
11 import io.netty.buffer.ByteBuf;\r
12 import io.netty.buffer.UnpooledByteBufAllocator;\r
13 \r
14 import org.junit.Assert;\r
15 import org.junit.Test;\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterRelatedTableFeatureProperty;\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;\r
19 \r
20 /**\r
21  * @author michal.polkorab\r
22  *\r
23  */\r
24 public class OF13TableFeaturesExperimenterDeserializerTest {\r
25 \r
26     /**\r
27      * Testing of {@link OF13TableFeaturesExperimenterDeserializer} for correct translation into POJO\r
28      * @throws Exception \r
29      */\r
30     @Test\r
31     public void testExperimenter() {\r
32         ByteBuf buffer = UnpooledByteBufAllocator.DEFAULT.buffer();\r
33         buffer.writeShort(65534);\r
34         buffer.writeShort(16);\r
35         buffer.writeInt(256);\r
36         buffer.writeInt(546);\r
37         byte[] data = new byte[]{1, 2, 3, 4};\r
38         buffer.writeBytes(data);\r
39 \r
40         OF13TableFeaturesExperimenterDeserializer deserializer =\r
41                 new OF13TableFeaturesExperimenterDeserializer();\r
42         TableFeatureProperties message = deserializer.deserialize(buffer);\r
43 \r
44         Assert.assertEquals("Wrong type", TableFeaturesPropType.OFPTFPTEXPERIMENTER, message.getType());\r
45         ExperimenterRelatedTableFeatureProperty property =\r
46                 message.getAugmentation(ExperimenterRelatedTableFeatureProperty.class);\r
47         Assert.assertEquals("Wrong experimenter", 256, property.getExperimenter().intValue());\r
48         Assert.assertEquals("Wrong exp-type", 546, property.getExpType().intValue());\r
49         Assert.assertArrayEquals("Wrong data", data, property.getData());\r
50     }\r
51 \r
52     /**\r
53      * Testing of {@link OF13TableFeaturesExperimenterDeserializer} for correct translation into POJO\r
54      * @throws Exception \r
55      */\r
56     @Test\r
57     public void testExperimenterWithoutData() {\r
58         ByteBuf buffer = UnpooledByteBufAllocator.DEFAULT.buffer();\r
59         buffer.writeShort(65534);\r
60         buffer.writeShort(12);\r
61         buffer.writeInt(256);\r
62         buffer.writeInt(546);\r
63 \r
64         OF13TableFeaturesExperimenterDeserializer deserializer =\r
65                 new OF13TableFeaturesExperimenterDeserializer();\r
66         TableFeatureProperties message = deserializer.deserialize(buffer);\r
67 \r
68         Assert.assertEquals("Wrong type", TableFeaturesPropType.OFPTFPTEXPERIMENTER, message.getType());\r
69         ExperimenterRelatedTableFeatureProperty property =\r
70                 message.getAugmentation(ExperimenterRelatedTableFeatureProperty.class);\r
71         Assert.assertEquals("Wrong experimenter", 256, property.getExperimenter().intValue());\r
72         Assert.assertEquals("Wrong exp-type", 546, property.getExpType().intValue());\r
73         Assert.assertNull("Unexpected data", property.getData());\r
74     }\r
75 \r
76     /**\r
77      * Testing of {@link OF13TableFeaturesExperimenterDeserializer} for correct translation into POJO\r
78      * @throws Exception \r
79      */\r
80     @Test\r
81     public void testExperimenterMiss() {\r
82         ByteBuf buffer = UnpooledByteBufAllocator.DEFAULT.buffer();\r
83         buffer.writeShort(65535);\r
84         buffer.writeShort(16);\r
85         buffer.writeInt(256);\r
86         buffer.writeInt(546);\r
87         byte[] data = new byte[]{1, 2, 3, 4};\r
88         buffer.writeBytes(data);\r
89 \r
90         OF13TableFeaturesExperimenterDeserializer deserializer =\r
91                 new OF13TableFeaturesExperimenterDeserializer();\r
92         TableFeatureProperties message = deserializer.deserialize(buffer);\r
93 \r
94         Assert.assertEquals("Wrong type", TableFeaturesPropType.OFPTFPTEXPERIMENTERMISS, message.getType());\r
95         ExperimenterRelatedTableFeatureProperty property =\r
96                 message.getAugmentation(ExperimenterRelatedTableFeatureProperty.class);\r
97         Assert.assertEquals("Wrong experimenter", 256, property.getExperimenter().intValue());\r
98         Assert.assertEquals("Wrong exp-type", 546, property.getExpType().intValue());\r
99         Assert.assertArrayEquals("Wrong data", data, property.getData());\r
100     }\r
101 \r
102     /**\r
103      * Testing of {@link OF13TableFeaturesExperimenterDeserializer} for correct translation into POJO\r
104      * @throws Exception \r
105      */\r
106     @Test\r
107     public void testExperimenterMissWithoutData() {\r
108         ByteBuf buffer = UnpooledByteBufAllocator.DEFAULT.buffer();\r
109         buffer.writeShort(65535);\r
110         buffer.writeShort(12);\r
111         buffer.writeInt(256);\r
112         buffer.writeInt(546);\r
113 \r
114         OF13TableFeaturesExperimenterDeserializer deserializer =\r
115                 new OF13TableFeaturesExperimenterDeserializer();\r
116         TableFeatureProperties message = deserializer.deserialize(buffer);\r
117 \r
118         Assert.assertEquals("Wrong type", TableFeaturesPropType.OFPTFPTEXPERIMENTERMISS, message.getType());\r
119         ExperimenterRelatedTableFeatureProperty property =\r
120                 message.getAugmentation(ExperimenterRelatedTableFeatureProperty.class);\r
121         Assert.assertEquals("Wrong experimenter", 256, property.getExperimenter().intValue());\r
122         Assert.assertEquals("Wrong exp-type", 546, property.getExpType().intValue());\r
123         Assert.assertNull("Unexpected data", property.getData());\r
124     }\r
125 }\r