Bump MRI upstreams
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / device / SwitchFeaturesUtilTest.java
1 /*
2  * Copyright (c) 2013 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 package org.opendaylight.openflowplugin.impl.device;
9
10 import static org.junit.Assert.assertNotNull;
11 import static org.junit.Assert.assertNull;
12
13 import org.junit.After;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Capabilities;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;
19 import org.opendaylight.yangtools.yang.common.Uint8;
20
21 /**
22  * Tests for setting switch features for different version of OF plugin.
23  *
24  * @author jsebin
25  */
26 public class SwitchFeaturesUtilTest {
27     private GetFeaturesOutputBuilder featuresOutputBuilder;
28
29     /**
30      * Initialization of
31      * {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
32      * .GetFeaturesOutputBuilder GetFeaturesOutputBuilder}
33      * and {@link SwitchFeaturesUtil SwitchFeaturesUtil}.
34      */
35     @Before
36     public void setUp() {
37         featuresOutputBuilder = new GetFeaturesOutputBuilder();
38     }
39
40     @After
41     public void tearDown() {
42         featuresOutputBuilder = null;
43     }
44
45     /**
46      * Test method for
47      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.0 version
48      * and switch feature capabilities.
49      * .
50      */
51     @Test
52     public void testSwFeaturesCapabilitiesV10() {
53         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
54         featuresOutputBuilder.setCapabilitiesV10(capabilities).setVersion(Uint8.ONE);
55
56         assertNotNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
57     }
58
59     /**
60      * Test method for
61      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.3 version
62      * and switch feature capabilities
63      * .
64      */
65     @Test
66     public void testSwFeaturesCapabilitiesV13() {
67         Capabilities capabilities = new Capabilities(true, false, true, false, true, false, true);
68         featuresOutputBuilder.setCapabilities(capabilities).setCapabilitiesV10(null).setVersion(Uint8.valueOf(4));
69
70         assertNotNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
71     }
72
73     /**
74      * Test method for
75      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for malformed switch feature capabilities
76      * - at least one feature is null
77      * .
78      */
79     //@Test TODO:do we need to check if capability is null?
80     public void testSwFeaturesCapabilitiesMalformed() {
81         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, null);
82         featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion(Uint8.ONE);
83
84         assertNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
85     }
86
87     /**
88      * Test method for
89      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for mismatch between
90      * version and switch feature capabilities
91      * .
92      */
93     @Test
94     public void testSwFeaturesCapabilitiesVersionMismatch() {
95         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
96         featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion(Uint8.valueOf(4));
97
98         assertNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
99     }
100
101     /**
102      * Test method for
103      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for nonexisting version
104      * .
105      */
106     @Test
107     public void testSwFeaturesCapabilitiesNonexistingVersion() {
108         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
109         featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion(Uint8.ZERO);
110
111         assertNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
112     }
113 }