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 static org.junit.Assert.assertNotNull;
11 import static org.junit.Assert.assertNull;
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;
22 * Tests for setting switch features for different version of OF plugin.
26 public class SwitchFeaturesUtilTest {
27 private GetFeaturesOutputBuilder featuresOutputBuilder;
31 * {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
32 * .GetFeaturesOutputBuilder GetFeaturesOutputBuilder}
33 * and {@link SwitchFeaturesUtil SwitchFeaturesUtil}.
37 featuresOutputBuilder = new GetFeaturesOutputBuilder();
41 public void tearDown() {
42 featuresOutputBuilder = null;
47 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.0 version
48 * and switch feature capabilities.
52 public void testSwFeaturesCapabilitiesV10() {
53 CapabilitiesV10 capabilities = new CapabilitiesV10(true, false, true, false, true, false, true, false);
54 featuresOutputBuilder.setCapabilitiesV10(capabilities).setVersion(Uint8.ONE);
56 assertNotNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
61 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for OF 1.3 version
62 * and switch feature capabilities
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));
70 assertNotNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
75 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for malformed switch feature capabilities
76 * - at least one feature is null
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);
84 assertNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
89 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for mismatch between
90 * version and switch feature capabilities
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));
98 assertNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));
103 * {@link SwitchFeaturesUtil#buildSwitchFeatures} for nonexisting version
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);
111 assertNull(SwitchFeaturesUtil.buildSwitchFeatures(featuresOutputBuilder.build()));