OF1.0 fixes
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / ErrorMessageFactoryTest.java
1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
2 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
3
4 import io.netty.buffer.ByteBuf;
5
6 import org.junit.Assert;
7 import org.junit.Test;
8 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
10
11 /**
12  * @author michal.polkorab
13  * @author timotej.kubas
14  */
15 public class ErrorMessageFactoryTest {
16
17     /**
18      * Test of {@link ErrorMessageFactory} for correct translation into POJO
19      */
20     @Test
21     public void testWithoutData() {
22         ByteBuf bb = BufferHelper.buildBuffer("00 01 00 02");
23         ErrorMessage builtByFactory = BufferHelper.decodeV13(
24                 ErrorMessageFactory.getInstance(), bb);
25
26         BufferHelper.checkHeaderV13(builtByFactory);
27         Assert.assertEquals("Wrong type", 1, builtByFactory.getType().intValue());
28         Assert.assertEquals("Wrong code", 2, builtByFactory.getCode().intValue());
29         Assert.assertEquals("Wrong type string", "BADREQUEST", builtByFactory.getTypeString());
30         Assert.assertEquals("Wrong code string", "BADMULTIPART", builtByFactory.getCodeString());
31         Assert.assertNull("Data is not null", builtByFactory.getData());
32     }
33     
34     /**
35      * Test of {@link ErrorMessageFactory} for correct translation into POJO
36      */
37     @Test
38     public void testWithData() {
39         ByteBuf bb = BufferHelper.buildBuffer("00 00 00 01 00 01 02 03");
40         ErrorMessage builtByFactory = BufferHelper.decodeV13(
41                 ErrorMessageFactory.getInstance(), bb);
42
43         BufferHelper.checkHeaderV13(builtByFactory);
44         Assert.assertEquals("Wrong type", 0, builtByFactory.getType().intValue());
45         Assert.assertEquals("Wrong code", 1, builtByFactory.getCode().intValue());
46         Assert.assertEquals("Wrong type string", "HELLOFAILED", builtByFactory.getTypeString());
47         Assert.assertEquals("Wrong code string", "EPERM", builtByFactory.getCodeString());
48         Assert.assertArrayEquals("Wrong data", new byte[]{0x00, 0x01, 0x02, 0x03}, builtByFactory.getData());
49     }
50     
51     /**
52      * Test of {@link ErrorMessageFactory} for correct translation into POJO
53      */
54     @Test
55     public void testWithIncorrectTypeEnum() {
56         ByteBuf bb = BufferHelper.buildBuffer("00 20 00 05 00 01 02 03");
57         ErrorMessage builtByFactory = BufferHelper.decodeV13(
58                 ErrorMessageFactory.getInstance(), bb);
59
60         BufferHelper.checkHeaderV13(builtByFactory);
61         Assert.assertEquals("Wrong type", 32, builtByFactory.getType().intValue());
62         Assert.assertEquals("Wrong code", 5, builtByFactory.getCode().intValue());
63         Assert.assertEquals("Wrong type string", "UNKNOWN_TYPE", builtByFactory.getTypeString());
64         Assert.assertEquals("Wrong code string", "UNKNOWN_CODE", builtByFactory.getCodeString());
65         Assert.assertArrayEquals("Wrong data", new byte[]{0x00, 0x01, 0x02, 0x03}, builtByFactory.getData());
66     }
67     
68     /**
69      * Test of {@link ErrorMessageFactory} for correct translation into POJO
70      */
71     @Test
72     public void testWithIncorrectCodeEnum() {
73         ByteBuf bb = BufferHelper.buildBuffer("00 03 00 10 00 01 02 03");
74         ErrorMessage builtByFactory = BufferHelper.decodeV13(
75                 ErrorMessageFactory.getInstance(), bb);
76
77         BufferHelper.checkHeaderV13(builtByFactory);
78         Assert.assertEquals("Wrong type", 3, builtByFactory.getType().intValue());
79         Assert.assertEquals("Wrong code", 16, builtByFactory.getCode().intValue());
80         Assert.assertEquals("Wrong type string", "BADINSTRUCTION", builtByFactory.getTypeString());
81         Assert.assertEquals("Wrong code string", "UNKNOWN_CODE", builtByFactory.getCodeString());
82         Assert.assertArrayEquals("Wrong data", new byte[]{0x00, 0x01, 0x02, 0x03}, builtByFactory.getData());
83     }
84 }