Mass replace CRLF->LF
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / util / CodeKeyMakerFactoryTest.java
1 /*
2  * Copyright (c) 2014 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.util;
10
11 import io.netty.buffer.ByteBuf;
12
13 import org.junit.Assert;
14 import org.junit.Test;
15 import org.opendaylight.openflowjava.protocol.api.extensibility.MessageCodeKey;
16 import org.opendaylight.openflowjava.protocol.api.keys.ActionDeserializerKey;
17 import org.opendaylight.openflowjava.protocol.api.keys.InstructionDeserializerKey;
18 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
19 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
20
21 /**
22  * @author michal.polkorab
23  *
24  */
25 public class CodeKeyMakerFactoryTest {
26
27     /**
28      * Tests {@link CodeKeyMakerFactory#createMatchEntriesKeyMaker(short)}
29      */
30     @Test
31     public void testMatchEntriesKeyMaker() {
32         CodeKeyMaker keyMaker = CodeKeyMakerFactory.createMatchEntriesKeyMaker(EncodeConstants.OF13_VERSION_ID);
33         Assert.assertNotNull("Null key maker", keyMaker);
34
35         ByteBuf buffer = BufferHelper.buildBuffer("80 00 00 04 00 00 00 01");
36         buffer.skipBytes(4); // skip XID
37         MessageCodeKey codeKey = keyMaker.make(buffer);
38
39         Assert.assertNotNull("Null key", codeKey);
40         Assert.assertEquals("Wrong key", new MatchEntryDeserializerKey(EncodeConstants.OF13_VERSION_ID,
41                         32768, 0), codeKey);
42         Assert.assertEquals("Buffer index modified", 8, buffer.readableBytes());
43     }
44
45     /**
46      * Tests {@link CodeKeyMakerFactory#createMatchEntriesKeyMaker(short)}
47      */
48     @Test
49     public void testExperimenterMatchEntriesKeyMaker() {
50         CodeKeyMaker keyMaker = CodeKeyMakerFactory.createMatchEntriesKeyMaker(EncodeConstants.OF13_VERSION_ID);
51         Assert.assertNotNull("Null key maker", keyMaker);
52
53         ByteBuf buffer = BufferHelper.buildBuffer("FF FF 00 04 00 00 00 01");
54         buffer.skipBytes(4); // skip XID
55         MessageCodeKey codeKey = keyMaker.make(buffer);
56
57         Assert.assertNotNull("Null key", codeKey);
58         MatchEntryDeserializerKey comparationKey = new MatchEntryDeserializerKey(EncodeConstants.OF13_VERSION_ID, 65535, 0);
59         comparationKey.setExperimenterId(1L);
60         Assert.assertEquals("Wrong key", comparationKey, codeKey);
61         Assert.assertEquals("Buffer index modified", 8, buffer.readableBytes());
62     }
63
64     /**
65      * Tests {@link CodeKeyMakerFactory#createActionsKeyMaker(short)}
66      */
67     @Test
68     public void testActionKeyMaker() {
69         CodeKeyMaker keyMaker = CodeKeyMakerFactory.createActionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
70         Assert.assertNotNull("Null key maker", keyMaker);
71
72         ByteBuf buffer = BufferHelper.buildBuffer("00 00 00 10 00 00 00 01 00 02 00 00 00 00 00 00");
73         buffer.skipBytes(4); // skip XID
74         MessageCodeKey codeKey = keyMaker.make(buffer);
75
76         Assert.assertNotNull("Null key", codeKey);
77         Assert.assertEquals("Wrong key", new ActionDeserializerKey(EncodeConstants.OF13_VERSION_ID,
78                         0, null), codeKey);
79         Assert.assertEquals("Buffer index modified", 16, buffer.readableBytes());
80     }
81
82     /**
83      * Tests {@link CodeKeyMakerFactory#createActionsKeyMaker(short)}
84      */
85     @Test
86     public void testExperimenterActionKeyMaker() {
87         CodeKeyMaker keyMaker = CodeKeyMakerFactory.createActionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
88         Assert.assertNotNull("Null key maker", keyMaker);
89
90         ByteBuf buffer = BufferHelper.buildBuffer("FF FF 00 08 00 00 00 01");
91         buffer.skipBytes(4); // skip XID
92         MessageCodeKey codeKey = keyMaker.make(buffer);
93
94         Assert.assertNotNull("Null key", codeKey);
95         Assert.assertEquals("Wrong key", new ActionDeserializerKey(EncodeConstants.OF13_VERSION_ID,
96                         65535, 1L), codeKey);
97         Assert.assertEquals("Buffer index modified", 8, buffer.readableBytes());
98     }
99
100     /**
101      * Tests {@link CodeKeyMakerFactory#createInstructionsKeyMaker(short)}
102      */
103     @Test
104     public void testInstructionKeyMaker() {
105         CodeKeyMaker keyMaker = CodeKeyMakerFactory.createInstructionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
106         Assert.assertNotNull("Null key maker", keyMaker);
107
108         ByteBuf buffer = BufferHelper.buildBuffer("00 00 00 08");
109         buffer.skipBytes(4); // skip XID
110         MessageCodeKey codeKey = keyMaker.make(buffer);
111
112         Assert.assertNotNull("Null key", codeKey);
113         Assert.assertEquals("Wrong key", new InstructionDeserializerKey(EncodeConstants.OF13_VERSION_ID,
114                         0, null), codeKey);
115         Assert.assertEquals("Buffer index modified", 4, buffer.readableBytes());
116     }
117
118     /**
119      * Tests {@link CodeKeyMakerFactory#createInstructionsKeyMaker(short)}
120      */
121     @Test
122     public void testExperimenterInstructionKeyMaker() {
123         CodeKeyMaker keyMaker = CodeKeyMakerFactory.createInstructionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
124         Assert.assertNotNull("Null key maker", keyMaker);
125
126         ByteBuf buffer = BufferHelper.buildBuffer("FF FF 00 08 00 00 00 01");
127         buffer.skipBytes(4); // skip XID
128         MessageCodeKey codeKey = keyMaker.make(buffer);
129
130         Assert.assertNotNull("Null key", codeKey);
131         Assert.assertEquals("Wrong key", new InstructionDeserializerKey(EncodeConstants.OF13_VERSION_ID,
132                         65535, 1L), codeKey);
133         Assert.assertEquals("Buffer index modified", 8, buffer.readableBytes());
134     }
135 }