--- /dev/null
+/*\r
+ * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.vpnservice.test;\r
+\r
+import static org.junit.Assert.*;\r
+import static org.mockito.Matchers.*;\r
+import static org.mockito.Mockito.when;\r
+\r
+import org.junit.*;\r
+import org.junit.runner.RunWith;\r
+import org.mockito.Mock;\r
+import org.mockito.runners.MockitoJUnitRunner;\r
+\r
+import org.opendaylight.vpnservice.VpnManager;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;\r
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.concepts.ListenerRegistration;\r
+import org.opendaylight.yangtools.yang.binding.DataObject;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;\r
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;\r
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.*;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.*;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.apply.label.apply.label.mode.*;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.apply.label.ApplyLabelMode;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.af.config.ApplyLabelBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances.vpn.instance.Ipv4FamilyBuilder;\r
+\r
+@RunWith(MockitoJUnitRunner.class)\r
+public class VpnServiceTest {\r
+ @Mock DataBroker dataBroker;\r
+ @Mock ListenerRegistration<DataChangeListener> dataChangeListenerRegistration;\r
+ MockDataChangedEvent event;\r
+\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ when(dataBroker.registerDataChangeListener(\r
+ any(LogicalDatastoreType.class),\r
+ any(InstanceIdentifier.class),\r
+ any(DataChangeListener.class),\r
+ any(DataChangeScope.class)))\r
+ .thenReturn(dataChangeListenerRegistration);\r
+ event = new MockDataChangedEvent();\r
+ }\r
+\r
+ @Test\r
+ public void test() {\r
+ VpnInstanceBuilder builder = new VpnInstanceBuilder().setKey(new VpnInstanceKey("Vpn1")).\r
+ setIpv4Family(new Ipv4FamilyBuilder().setRouteDistinguisher("100:1").setImportRoutePolicy("100:2").\r
+ setExportRoutePolicy("100:1").setApplyLabel(new ApplyLabelBuilder().setApplyLabelMode(\r
+ new PerRouteBuilder().setApplyLabelPerRoute(true).build()).build()).build());\r
+ VpnInstance instance = builder.build();\r
+ VpnManager vpnManager = new VpnManager(dataBroker);\r
+ event.created.put(createVpnId("Vpn1"), instance);\r
+ vpnManager.onDataChanged(event);\r
+ }\r
+\r
+ private InstanceIdentifier<VpnInstance> createVpnId(String name) {\r
+ InstanceIdentifierBuilder<VpnInstance> idBuilder = \r
+ InstanceIdentifier.builder(VpnInstances.class).child(VpnInstance.class, new VpnInstanceKey(name));\r
+ InstanceIdentifier<VpnInstance> id = idBuilder.build();\r
+ return id;\r
+ }\r
+\r
+}\r