2 * Copyright © 2015, 2017 Ericsson India Global Services Pvt Ltd. 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.netvirt.fibmanager.test;
10 import java.math.BigInteger;
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14 import org.mockito.Mock;
15 import org.mockito.junit.MockitoJUnitRunner;
16 import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
17 import org.opendaylight.mdsal.binding.api.DataBroker;
18 import org.opendaylight.mdsal.binding.api.ReadTransaction;
19 import org.opendaylight.mdsal.binding.api.WriteTransaction;
20 import org.opendaylight.netvirt.fibmanager.VrfEntryListener;
21 import org.opendaylight.netvirt.fibmanager.api.FibHelper;
22 import org.opendaylight.netvirt.fibmanager.api.RouteOrigin;
23 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.FibEntries;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.fibentries.VrfTables;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.fibentries.VrfTablesKey;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntryKey;
29 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
31 import org.opendaylight.yangtools.yang.common.Uint32;
33 @RunWith(MockitoJUnitRunner.class)
34 public class FibManagerTest {
37 DataBroker dataBroker;
39 ReadTransaction mockReadTx;
41 WriteTransaction mockWriteTx;
43 IMdsalApiManager mdsalManager;
45 IVpnManager vpnmanager;
47 VrfTablesKey vrfTableKey;
49 VrfEntryListener fibmgr;
50 private static final Long EGRESS_POINTER = 11L;
52 InstanceIdentifier<VrfEntry> identifier;
53 private static final String TEST_VPN_INSTANCE_NAME = "95486250-4ad7-418f-9030-2df37f98ad24";
54 private static final String TEST_RD = "100:1";
55 private static final String PREFIX = "1.1.2.3";
56 private static final String NEXTHOP = "1.1.1.1";
57 private static final Uint32 LABEL = Uint32.valueOf(10);
58 RouteOrigin origin = RouteOrigin.STATIC;
60 private static final long VPN_ID = 101L;
61 private static final long VPN_INTF_CNT = 2;
62 private static final Boolean IS_CLEANUP_COMPLETE = Boolean.FALSE;
64 private void setupMocks() {
65 dpn = BigInteger.valueOf(100000L);
66 identifier = buildVrfEntryId(TEST_RD, PREFIX);
67 vrfEntry = FibHelper.getVrfEntryBuilder(PREFIX, LABEL, NEXTHOP, origin, null).build();
68 //when(vrfTableKey.getRouteDistinguisher()).thenReturn(TEST_RD);
72 public void setUp() throws Exception {
77 public void testAdd() {
78 //fibmgr.onDataChanged(dataChangeEvent);
79 //Mockito.verify(mdsalManager, Mockito.times(2)).installFlow(any(FlowEntity.class));
82 public static InstanceIdentifier<VrfTables> buildVrfTableId(String rd) {
83 InstanceIdentifierBuilder<VrfTables> idBuilder =
84 InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd));
85 InstanceIdentifier<VrfTables> vrfTableId = idBuilder.build();
89 public static InstanceIdentifier<VrfEntry> buildVrfEntryId(String rd, String prefix) {
90 InstanceIdentifierBuilder<VrfEntry> idBuilder =
91 InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd))
92 .child(VrfEntry.class, new VrfEntryKey(prefix));
93 InstanceIdentifier<VrfEntry> vrfEntryId = idBuilder.build();