ac1676424c1f4426992177f94295889351d5c843
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / ExperimenterMessageFactoryTest.java
1 /*\r
2  * Copyright (c) 2014 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.impl.deserialization.factories;\r
10 \r
11 import static org.mockito.Matchers.any;\r
12 import static org.mockito.Mockito.when;\r
13 import io.netty.buffer.ByteBuf;\r
14 \r
15 import org.junit.Assert;\r
16 import org.junit.Before;\r
17 import org.junit.Test;\r
18 import org.mockito.Mock;\r
19 import org.mockito.MockitoAnnotations;\r
20 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;\r
21 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;\r
22 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterIdDeserializerKey;\r
23 import org.opendaylight.openflowjava.util.ByteBufUtils;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;\r
25 \r
26 /**\r
27  * @author michal.polkorab\r
28  *\r
29  */\r
30 public class ExperimenterMessageFactoryTest {\r
31 \r
32     @Mock DeserializerRegistry registry;\r
33     @Mock OFDeserializer<ExperimenterMessage> deserializer;\r
34     @Mock ExperimenterMessage message;\r
35 \r
36     /**\r
37      * Initializes mocks\r
38      */\r
39     @Before\r
40     public void startUp() {\r
41         MockitoAnnotations.initMocks(this);\r
42     }\r
43 \r
44     /**\r
45      * Test deserializer lookup correctness\r
46      */\r
47     @Test\r
48     public void test() {\r
49         when(registry.getDeserializer(any(ExperimenterIdDeserializerKey.class))).thenReturn(deserializer);\r
50         when(deserializer.deserialize(any(ByteBuf.class))).thenReturn(message);\r
51         \r
52         ByteBuf buffer = ByteBufUtils.hexStringToByteBuf("00 01 02 03 00 00 00 10");\r
53         ExperimenterMessageFactory factory = new ExperimenterMessageFactory();\r
54         factory.injectDeserializerRegistry(registry);\r
55         ExperimenterMessage deserializedMessage = factory.deserialize(buffer);\r
56         Assert.assertEquals("Wrong return value", message, deserializedMessage);\r
57         Assert.assertEquals("ByteBuf index moved", 0, buffer.readerIndex());\r
58     }\r
59 }