2 * Copyright © 2017 Ericsson, 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
9 package org.opendaylight.netvirt.sfc.classifier.providers;
11 import static org.opendaylight.yangtools.testutils.mockito.MoreAnswers.realOrException;
13 import java.math.BigInteger;
14 import java.util.ArrayList;
15 import java.util.Collections;
16 import java.util.List;
17 import org.mockito.Mockito;
18 import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentationBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsKey;
27 public abstract class TestInterfaceManager implements IInterfaceManager {
28 public static TestInterfaceManager newInstance() {
29 return Mockito.mock(TestInterfaceManager.class, realOrException());
33 public List<OvsdbTerminationPointAugmentation> getTunnelPortsOnBridge(BigInteger dpnId) {
34 if (dpnId == GeniusProviderTestParams.DPN_ID_NO_EXIST) {
35 // Unfortunately, the getTunnelPortsOnBridge() method may return null
39 if (dpnId == GeniusProviderTestParams.DPN_ID_NO_PORTS) {
40 return Collections.emptyList();
43 OvsdbTerminationPointAugmentationBuilder tpAug = new OvsdbTerminationPointAugmentationBuilder();
44 tpAug.setOfport(GeniusProviderTestParams.OF_PORT);
46 if (dpnId == GeniusProviderTestParams.DPN_ID_NO_VXGPE_PORTS) {
47 // Tunnel Termination Point that is NOT of type VXGPE
48 tpAug.setInterfaceType(InterfaceTypeGre.class);
50 // Tunnel Termination Point that IS of type VXGPE
51 tpAug.setInterfaceType(InterfaceTypeVxlan.class);
54 List<Options> opsList = new ArrayList<>();
55 if (dpnId != GeniusProviderTestParams.DPN_ID_NO_OPTIONS) {
56 OptionsBuilder opsBuilder = new OptionsBuilder();
57 opsBuilder.withKey(new OptionsKey(GeniusProvider.OPTION_KEY_EXTS));
58 opsBuilder.setValue(GeniusProvider.OPTION_VALUE_EXTS_GPE);
59 opsList.add(opsBuilder.build());
61 tpAug.setOptions(opsList);
63 List<OvsdbTerminationPointAugmentation> tpAugList = new ArrayList<>();
64 tpAugList.add(tpAug.build());