Initial draft of vpn service
[vpnservice.git] / vpnmanager-impl / src / test / java / org / opendaylight / vpnservice / test / VpnServiceTest.java
diff --git a/vpnmanager-impl/src/test/java/org/opendaylight/vpnservice/test/VpnServiceTest.java b/vpnmanager-impl/src/test/java/org/opendaylight/vpnservice/test/VpnServiceTest.java
new file mode 100644 (file)
index 0000000..a28c298
--- /dev/null
@@ -0,0 +1,75 @@
+/*\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