Bump upstreams for 2022.09 Chlorine
[openflowplugin.git] / extension / openflowjava-extension-eric / src / test / java / org / opendaylight / openflowjava / eric / EricExtensionCodecRegistratorImplTest.java
1 /*
2  * Copyright (c) 2019 Ericsson India Global Services Pvt Ltd. 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 package org.opendaylight.openflowjava.eric;
9
10 import java.util.LinkedList;
11 import java.util.List;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.Mock;
16 import org.mockito.Mockito;
17 import org.mockito.junit.MockitoJUnitRunner;
18 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
19 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
20 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
21 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
22 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
23 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EricExpClass;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
27 import org.opendaylight.yangtools.yang.common.Uint8;
28
29 @RunWith(MockitoJUnitRunner.class)
30 public class EricExtensionCodecRegistratorImplTest {
31
32     public static final Uint8 VERSION = Uint8.valueOf(4);
33     public static final byte VERSION1 = EncodeConstants.OF10_VERSION_ID;
34     public static final byte VERSION2 = EncodeConstants.OF13_VERSION_ID;
35
36     private EricExtensionCodecRegistratorImpl ericExtensionCodecRegistrator;
37     private final List<SwitchConnectionProvider> providers = new LinkedList<>();
38     private MatchEntrySerializerKey<EricExpClass, MatchField> matchSerializerKey;
39     private MatchEntryDeserializerKey matchDeserializerKey;
40
41     @Mock
42     OFSerializer<MatchEntry> matchSerializer;
43     @Mock
44     OFDeserializer<MatchEntry> matchDeserializer;
45     @Mock
46     SwitchConnectionProvider provider;
47
48     @Before
49     public void setUp() {
50         providers.add(provider);
51         matchSerializerKey = new MatchEntrySerializerKey<>(VERSION, EricExpClass.VALUE, MatchField.VALUE);
52         //OxmClass 1, OxmField 2
53         matchDeserializerKey = new MatchEntryDeserializerKey(VERSION, 1, 2);
54
55         ericExtensionCodecRegistrator = new EricExtensionCodecRegistratorImpl(providers);
56     }
57
58     @Test
59     public void registerMatchEntrySerializerTest() {
60         ericExtensionCodecRegistrator.registerMatchEntrySerializer(matchSerializerKey, matchSerializer);
61         Mockito.verify(provider).registerMatchEntrySerializer(matchSerializerKey, matchSerializer);
62     }
63
64     @Test
65     public void unregisterMatchEntrySerializerTest() {
66         ericExtensionCodecRegistrator.unregisterMatchEntrySerializer(matchSerializerKey);
67         Mockito.verify(provider).unregisterSerializer(matchSerializerKey);
68     }
69
70     @Test
71     public void registerMatchEntryDeserializerTest() {
72         ericExtensionCodecRegistrator.registerMatchEntryDeserializer(matchDeserializerKey, matchDeserializer);
73         Mockito.verify(provider).registerMatchEntryDeserializer(matchDeserializerKey, matchDeserializer);
74     }
75
76     @Test
77     public void unregisterMatchEntryDeserializerTest() {
78         ericExtensionCodecRegistrator.unregisterMatchEntryDeserializer(matchDeserializerKey);
79         Mockito.verify(provider).unregisterDeserializer(matchDeserializerKey);
80     }
81
82 }