Add <relativePath/> for bgpmanager to ensure Maven pulls artifact from Nexus
[vpnservice.git] / vpnmanager-impl / src / test / java / org / opendaylight / vpnservice / test / VpnServiceTest.java
1 /*\r
2  * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.vpnservice.test;\r
9 \r
10 import static org.junit.Assert.*;\r
11 import static org.mockito.Matchers.*;\r
12 import static org.mockito.Mockito.when;\r
13 \r
14 import org.junit.*;\r
15 import org.junit.runner.RunWith;\r
16 import org.mockito.Mock;\r
17 import org.mockito.runners.MockitoJUnitRunner;\r
18 \r
19 import org.opendaylight.vpnservice.VpnManager;\r
20 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
21 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;\r
22 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;\r
23 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
24 import org.opendaylight.yangtools.concepts.ListenerRegistration;\r
25 import org.opendaylight.yangtools.yang.binding.DataObject;\r
26 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;\r
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;\r
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;\r
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;\r
31 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;\r
32 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.*;\r
33 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.*;\r
34 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.apply.label.apply.label.mode.*;\r
35 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.apply.label.ApplyLabelMode;\r
36 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.ApplyLabelBuilder;\r
37 import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4FamilyBuilder;\r
38 \r
39 @RunWith(MockitoJUnitRunner.class)\r
40 public class VpnServiceTest {\r
41     @Mock DataBroker dataBroker;\r
42     @Mock ListenerRegistration<DataChangeListener> dataChangeListenerRegistration;\r
43     MockDataChangedEvent event;\r
44 \r
45     @Before\r
46     public void setUp() throws Exception {\r
47         when(dataBroker.registerDataChangeListener(\r
48                 any(LogicalDatastoreType.class),\r
49                 any(InstanceIdentifier.class),\r
50                 any(DataChangeListener.class),\r
51                 any(DataChangeScope.class)))\r
52                 .thenReturn(dataChangeListenerRegistration);\r
53         event = new MockDataChangedEvent();\r
54     }\r
55 \r
56     @Test\r
57     public void test() {\r
58         VpnInstanceBuilder builder = new VpnInstanceBuilder().setKey(new VpnInstanceKey("Vpn1")).\r
59                 setIpv4Family(new Ipv4FamilyBuilder().setRouteDistinguisher("100:1").setImportRoutePolicy("100:2").\r
60                     setExportRoutePolicy("100:1").setApplyLabel(new ApplyLabelBuilder().setApplyLabelMode(\r
61                         new PerRouteBuilder().setApplyLabelPerRoute(true).build()).build()).build());\r
62         VpnInstance instance = builder.build();\r
63         VpnManager vpnManager = new VpnManager(dataBroker);\r
64         event.created.put(createVpnId("Vpn1"), instance);\r
65         vpnManager.onDataChanged(event);\r
66     }\r
67 \r
68     private InstanceIdentifier<VpnInstance> createVpnId(String name) {\r
69        InstanceIdentifierBuilder<VpnInstance> idBuilder = \r
70            InstanceIdentifier.builder(VpnInstances.class).child(VpnInstance.class, new VpnInstanceKey(name));\r
71        InstanceIdentifier<VpnInstance> id = idBuilder.build();\r
72        return id;\r
73     }\r
74 \r
75 }\r