2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.openflowplugin.openflow.md.core.extension;
10 import org.junit.After;
11 import org.junit.Assert;
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.runners.MockitoJUnitRunner;
17 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
18 import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
19 import org.opendaylight.openflowplugin.extension.api.ConverterExtensionKey;
20 import org.opendaylight.openflowplugin.extension.api.ConvertorActionFromOFJava;
21 import org.opendaylight.openflowplugin.extension.api.ConvertorActionToOFJava;
22 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
23 import org.opendaylight.openflowplugin.extension.api.TypeVersionKey;
24 import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.ExperimenterActionSubType;
29 * {@link ExtensionConverterManagerImpl} test.
31 @RunWith(MockitoJUnitRunner.class)
32 public class ExtensionConverterManagerImplTest {
34 private ExtensionConverterManagerImpl manager;
36 private ConvertorActionToOFJava<Action, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action
37 .rev150203.actions.grouping.Action> extConvertorToOFJava;
38 private TypeVersionKey<? extends Action> keyToOFJava;
40 private ConvertorActionFromOFJava<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
41 .actions.grouping.Action, ActionPath> extConvertorFromOFJava;
42 private ExperimenterActionSerializerKey keyFromOFJava;
43 private AutoCloseable regFromOFJava;
44 private AutoCloseable regToOFJava;
47 * prepare required stuff.
51 manager = new ExtensionConverterManagerImpl();
52 keyFromOFJava = new ExperimenterActionSerializerKey((short) 1, 42L, ExpSubType.class);
53 regFromOFJava = manager.registerActionConvertor(keyFromOFJava, extConvertorFromOFJava);
55 keyToOFJava = new TypeVersionKey<>(ActionExpCase.class, (short) 1);
56 regToOFJava = manager.registerActionConvertor(keyToOFJava, extConvertorToOFJava);
60 * tear down test case - close registrations.
63 public void tearDown() throws Exception {
69 * Test method for ExtensionConverterManagerImpl#unregister(ConverterExtensionKey, ConvertorToOFJava)}.
72 public void testUnregisterConverterExtensionKeyOfQConvertorToOFJavaOfQQ() throws Exception {
74 Assert.assertNull(manager.getConverter(keyToOFJava));
78 * Test method for {@link ExtensionConverterManagerImpl#unregister(MessageTypeKey, ConvertorFromOFJava)}.
81 public void testUnregisterMessageTypeKeyOfQConvertorFromOFJavaOfQQ() throws Exception {
82 regFromOFJava.close();
83 Assert.assertNull(manager.getConverter(keyFromOFJava));
87 * Test method for {@link ExtensionConverterManagerImpl#getConverter(ConverterExtensionKey)}.
90 public void testGetConverterConverterExtensionKeyOfQ() {
91 Assert.assertEquals(extConvertorToOFJava, manager.getConverter(keyToOFJava));
95 * Test method for {@link ExtensionConverterManagerImpl#getConverter(MessageTypeKey)}.
98 public void testGetConverterMessageTypeKeyOfQ() {
99 Assert.assertEquals(extConvertorFromOFJava, manager.getActionConverter(keyFromOFJava));
102 private interface ExpSubType extends ExperimenterActionSubType {
106 private interface ActionExpCase extends Action {