2 * Copyright (c) 2013 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.sal;
11 import org.junit.After;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Capabilities;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;
20 * Tests for setting switch features for different version of OF plugin
25 public class SwitchFeaturesUtilTest {
27 private GetFeaturesOutputBuilder featuresOutputBuilder;
28 private SwitchFeaturesUtil swUtil;
32 * initialization of {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder GetFeaturesOutputBuilder}
33 * and {@link org.opendaylight.openflowplugin.openflow.md.core.sal.SwitchFeaturesUtil SwitchFeaturesUtil}
37 public void setUp() throws Exception {
38 featuresOutputBuilder = new GetFeaturesOutputBuilder();
39 swUtil = SwitchFeaturesUtil.getInstance();
46 public void tearDown() throws Exception {
47 featuresOutputBuilder = null;
53 * {@link org.opendaylight.openflowplugin.openflow.md.core.sal.SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.0 version
54 * and switch feature capabilities
58 public void testSwFeaturesCapabilitiesV10() {
59 CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, false);
60 featuresOutputBuilder.setCapabilitiesV10(capabilities).setVersion((short) 1);
62 Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
67 * {@link org.opendaylight.openflowplugin.openflow.md.core.sal.SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.3 version
68 * and switch feature capabilities
72 public void testSwFeaturesCapabilitiesV13() {
73 Capabilities capabilities = new Capabilities(true, false, true, false, true, false, true);
74 featuresOutputBuilder.setCapabilities(capabilities).setCapabilitiesV10(null).setVersion((short) 4);
76 Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
81 * {@link org.opendaylight.openflowplugin.openflow.md.core.sal.SwitchFeaturesUtil#buildSwitchFeatures} for malformed switch feature capabilities
82 * - at least one feature is null
85 //@Test TODO:do we need to check if capability is null?
86 public void testSwFeaturesCapabilitiesMalformed() {
87 CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, null);
88 featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 1);
90 Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
95 * {@link org.opendaylight.openflowplugin.openflow.md.core.sal.SwitchFeaturesUtil#buildSwitchFeatures} for mismatch between
96 * version and switch feature capabilities
100 public void testSwFeaturesCapabilitiesVersionMismatch() {
101 CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, false);
102 featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 4);
104 Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
109 * {@link org.opendaylight.openflowplugin.openflow.md.core.sal.SwitchFeaturesUtil#buildSwitchFeatures} for nonexisting version
113 public void testSwFeaturesCapabilitiesNonexistingVersion() {
114 CapabilitiesV10 capabilities = new CapabilitiesV10( true, false, true, false, true, false, true, false);
115 featuresOutputBuilder.setCapabilitiesV10(capabilities).setCapabilities(null).setVersion((short) 0);
117 Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));