Merge "OPNFLWPLUG-1062 Include additional LLDP fields in liblldp"
[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 org.junit.After;
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Capabilities;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;
17
18 /**
19  * Tests for setting switch features for different version of OF plugin.
20  *
21  * @author jsebin
22  */
23 public class SwitchFeaturesUtilTest {
24
25     private GetFeaturesOutputBuilder featuresOutputBuilder;
26     private SwitchFeaturesUtil swUtil;
27
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         swUtil = SwitchFeaturesUtil.getInstance();
39     }
40
41     @After
42     public void tearDown() {
43         featuresOutputBuilder = null;
44         swUtil = null;
45     }
46
47     /**
48      * Test method for
49      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.0 version
50      * and switch feature capabilities.
51      * .
52      */
53     @Test
54     public void testSwFeaturesCapabilitiesV10() {
55         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
56         featuresOutputBuilder.setCapabilitiesV10(capabilities).setVersion((short) 1);
57
58         Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
59     }
60
61     /**
62      * Test method for
63      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.3 version
64      * and switch feature capabilities
65      * .
66      */
67     @Test
68     public void testSwFeaturesCapabilitiesV13() {
69         Capabilities capabilities = new Capabilities(true, false, true, false, true, false, true);
70         featuresOutputBuilder.setCapabilities(capabilities).setCapabilitiesV10(null).setVersion((short) 4);
71
72         Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
73     }
74
75     /**
76      * Test method for
77      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for malformed switch feature capabilities
78      * - at least one feature is null
79      * .
80      */
81     //@Test TODO:do we need to check if capability is null?
82     public void testSwFeaturesCapabilitiesMalformed() {
83         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, null);
84         featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 1);
85
86         Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
87     }
88
89     /**
90      * Test method for
91      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for mismatch between
92      * version and switch feature capabilities
93      * .
94      */
95     @Test
96     public void testSwFeaturesCapabilitiesVersionMismatch() {
97         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
98         featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 4);
99
100         Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
101     }
102
103     /**
104      * Test method for
105      * {@link SwitchFeaturesUtil#buildSwitchFeatures} for nonexisting version
106      * .
107      */
108     @Test
109     public void testSwFeaturesCapabilitiesNonexistingVersion() {
110         CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
111         featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 0);
112
113         Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
114     }
115 }