698914137870bd865e6781c30807f3a14d9e5f68
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / experimenter / OnfExperimenterErrorFactoryTest.java
1 /*
2  * Copyright (c) 2016 Pantheon Technologies s.r.o. 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
9 package org.opendaylight.openflowjava.protocol.impl.deserialization.experimenter;
10
11 import io.netty.buffer.ByteBuf;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
16 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
17 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
18 import org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializerRegistryImpl;
19 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
20 import org.opendaylight.openflowjava.util.ExperimenterDeserializerKeyFactory;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ExperimenterIdError;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
23
24 /**
25  * Tests for {@link org.opendaylight.openflowjava.protocol.impl.deserialization.experimenter.OnfExperimenterErrorFactory}.
26  */
27 public class OnfExperimenterErrorFactoryTest {
28
29     private OFDeserializer<ErrorMessage> factory;
30
31     @Before
32     public void startUp() {
33         DeserializerRegistry registry = new DeserializerRegistryImpl();
34         registry.init();
35         factory = registry.getDeserializer(ExperimenterDeserializerKeyFactory.createExperimenterErrorDeserializerKey(
36                 EncodeConstants.OF13_VERSION_ID, EncodeConstants.ONF_EXPERIMENTER_ID));
37     }
38
39     @Test
40     public void testVersion() {
41         ByteBuf buffer = BufferHelper.buildBuffer("ff ff 08 fc 00 00 00 01");
42         ErrorMessage builtByFactory = factory.deserialize(buffer);
43         BufferHelper.checkHeaderV13(builtByFactory);
44     }
45
46     @Test
47     public void testDeserializeBase() {
48         ByteBuf buffer = BufferHelper.buildBuffer("ff ff 08 fc 4f 4e 46 00");
49         ErrorMessage builtByFactory = factory.deserialize(buffer);
50         Assert.assertEquals("Wrong type", EncodeConstants.EXPERIMENTER_VALUE, builtByFactory.getType().intValue());
51         Assert.assertEquals("Wrong type string", "EXPERIMENTER", builtByFactory.getTypeString());
52         Assert.assertEquals("Wrong experimenter ID", EncodeConstants.ONF_EXPERIMENTER_ID,
53                 builtByFactory.getAugmentation(ExperimenterIdError.class).getExperimenter().getValue().intValue());
54         Assert.assertNull("Data is not null", builtByFactory.getData());
55     }
56
57     @Test
58     public void testDeserializeCodes() {
59         ByteBuf buffer = BufferHelper.buildBuffer("ff ff 08 fc 00 00 00 01");
60         ErrorMessage builtByFactory = factory.deserialize(buffer);
61         Assert.assertEquals("Wrong code", 2300, builtByFactory.getCode().intValue());
62         Assert.assertEquals("Wrong code string", "ONFERR_ET_UNKNOWN", builtByFactory.getCodeString());
63
64         buffer = BufferHelper.buildBuffer("ff ff 08 fd 00 00 00 01");
65         builtByFactory = factory.deserialize(buffer);
66         Assert.assertEquals("Wrong code", 2301, builtByFactory.getCode().intValue());
67         Assert.assertEquals("Wrong code string", "ONFERR_ET_EPERM", builtByFactory.getCodeString());
68
69         buffer = BufferHelper.buildBuffer("ff ff 08 fe 00 00 00 01");
70         builtByFactory = factory.deserialize(buffer);
71         Assert.assertEquals("Wrong code", 2302, builtByFactory.getCode().intValue());
72         Assert.assertEquals("Wrong code string", "ONFERR_ET_BAD_ID", builtByFactory.getCodeString());
73
74         buffer = BufferHelper.buildBuffer("ff ff 08 ff 00 00 00 01");
75         builtByFactory = factory.deserialize(buffer);
76         Assert.assertEquals("Wrong code", 2303, builtByFactory.getCode().intValue());
77         Assert.assertEquals("Wrong code string", "ONFERR_ET_BUNDLE_EXIST", builtByFactory.getCodeString());
78
79         buffer = BufferHelper.buildBuffer("ff ff 09 00 00 00 00 01");
80         builtByFactory = factory.deserialize(buffer);
81         Assert.assertEquals("Wrong code", 2304, builtByFactory.getCode().intValue());
82         Assert.assertEquals("Wrong code string", "ONFERR_ET_BUNDLE_CLOSED", builtByFactory.getCodeString());
83
84         buffer = BufferHelper.buildBuffer("ff ff 09 01 00 00 00 01");
85         builtByFactory = factory.deserialize(buffer);
86         Assert.assertEquals("Wrong code", 2305, builtByFactory.getCode().intValue());
87         Assert.assertEquals("Wrong code string", "ONFERR_ET_OUT_OF_BUNDLES", builtByFactory.getCodeString());
88
89         buffer = BufferHelper.buildBuffer("ff ff 09 02 00 00 00 01");
90         builtByFactory = factory.deserialize(buffer);
91         Assert.assertEquals("Wrong code", 2306, builtByFactory.getCode().intValue());
92         Assert.assertEquals("Wrong code string", "ONFERR_ET_BAD_TYPE", builtByFactory.getCodeString());
93
94         buffer = BufferHelper.buildBuffer("ff ff 09 03 00 00 00 01");
95         builtByFactory = factory.deserialize(buffer);
96         Assert.assertEquals("Wrong code", 2307, builtByFactory.getCode().intValue());
97         Assert.assertEquals("Wrong code string", "ONFERR_ET_BAD_FLAGS", builtByFactory.getCodeString());
98
99         buffer = BufferHelper.buildBuffer("ff ff 09 04 00 00 00 01");
100         builtByFactory = factory.deserialize(buffer);
101         Assert.assertEquals("Wrong code", 2308, builtByFactory.getCode().intValue());
102         Assert.assertEquals("Wrong code string", "ONFERR_ET_MSG_BAD_LEN", builtByFactory.getCodeString());
103
104         buffer = BufferHelper.buildBuffer("ff ff 09 05 00 00 00 01");
105         builtByFactory = factory.deserialize(buffer);
106         Assert.assertEquals("Wrong code", 2309, builtByFactory.getCode().intValue());
107         Assert.assertEquals("Wrong code string", "ONFERR_ET_MSG_BAD_XID", builtByFactory.getCodeString());
108
109         buffer = BufferHelper.buildBuffer("ff ff 09 06 00 00 00 01");
110         builtByFactory = factory.deserialize(buffer);
111         Assert.assertEquals("Wrong code", 2310, builtByFactory.getCode().intValue());
112         Assert.assertEquals("Wrong code string", "ONFERR_ET_MSG_UNSUP", builtByFactory.getCodeString());
113
114         buffer = BufferHelper.buildBuffer("ff ff 09 07 00 00 00 01");
115         builtByFactory = factory.deserialize(buffer);
116         Assert.assertEquals("Wrong code", 2311, builtByFactory.getCode().intValue());
117         Assert.assertEquals("Wrong code string", "ONFERR_ET_MSG_CONFLICT", builtByFactory.getCodeString());
118
119         buffer = BufferHelper.buildBuffer("ff ff 09 08 00 00 00 01");
120         builtByFactory = factory.deserialize(buffer);
121         Assert.assertEquals("Wrong code", 2312, builtByFactory.getCode().intValue());
122         Assert.assertEquals("Wrong code string", "ONFERR_ET_MSG_TOO_MANY", builtByFactory.getCodeString());
123
124         buffer = BufferHelper.buildBuffer("ff ff 09 09 00 00 00 01");
125         builtByFactory = factory.deserialize(buffer);
126         Assert.assertEquals("Wrong code", 2313, builtByFactory.getCode().intValue());
127         Assert.assertEquals("Wrong code string", "ONFERR_ET_MSG_FAILED", builtByFactory.getCodeString());
128
129         buffer = BufferHelper.buildBuffer("ff ff 09 0a 00 00 00 01");
130         builtByFactory = factory.deserialize(buffer);
131         Assert.assertEquals("Wrong code", 2314, builtByFactory.getCode().intValue());
132         Assert.assertEquals("Wrong code string", "ONFERR_ET_TIMEOUT", builtByFactory.getCodeString());
133
134         buffer = BufferHelper.buildBuffer("ff ff 09 0b 00 00 00 01");
135         builtByFactory = factory.deserialize(buffer);
136         Assert.assertEquals("Wrong code", 2315, builtByFactory.getCode().intValue());
137         Assert.assertEquals("Wrong code string", "ONFERR_ET_BUNDLE_IN_PROGRESS", builtByFactory.getCodeString());
138     }
139
140 }