Fixup Augmentable and Identifiable methods changing
[netvirt.git] / sfc / classifier / impl / src / test / java / org / opendaylight / netvirt / sfc / classifier / providers / TestInterfaceManager.java
1 /*
2  * Copyright © 2017 Ericsson, 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
9 package org.opendaylight.netvirt.sfc.classifier.providers;
10
11 import static org.opendaylight.yangtools.testutils.mockito.MoreAnswers.realOrException;
12
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;
26
27 public abstract class TestInterfaceManager implements IInterfaceManager {
28     public static TestInterfaceManager newInstance() {
29         return Mockito.mock(TestInterfaceManager.class, realOrException());
30     }
31
32     @Override
33     public List<OvsdbTerminationPointAugmentation> getTunnelPortsOnBridge(BigInteger dpnId) {
34         if (dpnId == GeniusProviderTestParams.DPN_ID_NO_EXIST) {
35             // Unfortunately, the getTunnelPortsOnBridge() method may return null
36             return null;
37         }
38
39         if (dpnId == GeniusProviderTestParams.DPN_ID_NO_PORTS) {
40             return Collections.emptyList();
41         }
42
43         OvsdbTerminationPointAugmentationBuilder tpAug = new OvsdbTerminationPointAugmentationBuilder();
44         tpAug.setOfport(GeniusProviderTestParams.OF_PORT);
45
46         if (dpnId == GeniusProviderTestParams.DPN_ID_NO_VXGPE_PORTS) {
47             // Tunnel Termination Point that is NOT of type VXGPE
48             tpAug.setInterfaceType(InterfaceTypeGre.class);
49         } else {
50             // Tunnel Termination Point that IS of type VXGPE
51             tpAug.setInterfaceType(InterfaceTypeVxlan.class);
52         }
53
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());
60         }
61         tpAug.setOptions(opsList);
62
63         List<OvsdbTerminationPointAugmentation> tpAugList = new ArrayList<>();
64         tpAugList.add(tpAug.build());
65
66         return tpAugList;
67     }
68 }