Migrate a few convertors
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / ConvertorManagerTest.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. 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.openflowplugin.openflow.md.core.sal.convertor;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertTrue;
13
14 import java.util.Collection;
15 import java.util.Collections;
16 import java.util.List;
17 import java.util.Optional;
18 import org.junit.Test;
19 import org.junit.runner.RunWith;
20 import org.mockito.junit.MockitoJUnitRunner;
21 import org.opendaylight.openflowplugin.api.OFConstants;
22 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.Convertor;
23 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorData;
24 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
27
28 /**
29  * Test for {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager}.
30  */
31 @RunWith(MockitoJUnitRunner.class)
32 public class ConvertorManagerTest {
33     @Test
34     public void testRegisterConvertor() {
35         final ConvertorManager convertorManager = new ConvertorManager(OFConstants.OFP_VERSION_1_3)
36                 .registerConvertor(OFConstants.OFP_VERSION_1_3, new Convertor<Action, String, VersionConvertorData>() {
37                     @Override
38                     public Collection<Class<?>> getTypes() {
39                         return Collections.singleton(Action.class);
40                     }
41
42                     @Override
43                     public String convert(Action source, VersionConvertorData data) {
44                         return null;
45                     }
46                 });
47
48         final Optional<Convertor> convertor = convertorManager.findConvertor(OFConstants.OFP_VERSION_1_3, Action.class);
49         assertTrue("Failed to find convertor for action", convertor.isPresent());
50     }
51
52     @Test
53     public void testConvert() {
54         final ConvertorManager convertorManager = new ConvertorManager(OFConstants.OFP_VERSION_1_3)
55                 .registerConvertor(OFConstants.OFP_VERSION_1_3, new Convertor<Action, String, VersionConvertorData>() {
56                     @Override
57                     public Collection<Class<?>> getTypes() {
58                         return Collections.singleton(Action.class);
59                     }
60
61                     @Override
62                     public String convert(Action source, VersionConvertorData data) {
63                         return String.valueOf(source) + String.valueOf(data);
64                     }
65                 });
66
67         final Action source = new ActionBuilder().setOrder(0).build();
68         final VersionConvertorData data = new VersionConvertorData(OFConstants.OFP_VERSION_1_3);
69         final String expectedResult = String.valueOf(source) + String.valueOf(data);
70         final Optional<String> result = convertorManager.convert(source, data);
71
72         assertTrue("Failed to convert action to string", result.isPresent());
73         assertEquals("Result and expected result do not match", result.get(), expectedResult);
74     }
75
76     /**
77      * Test for {@link ConvertorManager#convert(Collection, ConvertorData)}.
78      */
79     @Test
80     public void testConvert1() {
81         final ConvertorManager convertorManager = new ConvertorManager(OFConstants.OFP_VERSION_1_3)
82             .registerConvertor(OFConstants.OFP_VERSION_1_3,
83                 new Convertor<List<Action>, String, VersionConvertorData>() {
84                     @Override
85                     public Collection<Class<?>> getTypes() {
86                         return Collections.singleton(Action.class);
87                     }
88
89                     @Override
90                     public String convert(List<Action> source, VersionConvertorData data) {
91                         return String.valueOf(source) + String.valueOf(data);
92                     }
93                 });
94
95         final List<Action> source = Collections.singletonList(new ActionBuilder().setOrder(0).build());
96         final VersionConvertorData data = new VersionConvertorData(OFConstants.OFP_VERSION_1_3);
97         final String expectedResult = String.valueOf(source) + String.valueOf(data);
98         final Optional<String> result = convertorManager.convert(source, data);
99
100         assertTrue("Failed to convert action to string", result.isPresent());
101         assertEquals("Result and expected result do not match", result.get(), expectedResult);
102     }
103 }