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.impl.device;
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;
19 * Tests for setting switch features for different version of OF plugin.
23 public class SwitchFeaturesUtilTest {
25 private GetFeaturesOutputBuilder featuresOutputBuilder;
26 private SwitchFeaturesUtil swUtil;
31 * {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
32 * .GetFeaturesOutputBuilder GetFeaturesOutputBuilder}
33 * and {@link SwitchFeaturesUtil SwitchFeaturesUtil}.
36 public void setUp() throws Exception {
37 featuresOutputBuilder = new GetFeaturesOutputBuilder();
38 swUtil = SwitchFeaturesUtil.getInstance();
42 public void tearDown() throws Exception {
43 featuresOutputBuilder = null;
49 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.0 version
50 * and switch feature capabilities.
54 public void testSwFeaturesCapabilitiesV10() {
55 CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
56 featuresOutputBuilder.setCapabilitiesV10(capabilities).setVersion((short) 1);
58 Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
63 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.3 version
64 * and switch feature capabilities
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);
72 Assert.assertNotNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
77 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for malformed switch feature capabilities
78 * - at least one feature is null
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);
86 Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
91 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for mismatch between
92 * version and switch feature capabilities
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);
100 Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
105 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for nonexisting version
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);
113 Assert.assertNull(swUtil.buildSwitchFeatures(featuresOutputBuilder.build()));