Bug 5428: Ovsdb Termination Point is null issue
[groupbasedpolicy.git] / renderers / ofoverlay / src / test / java / org / opendaylight / groupbasedpolicy / renderer / ofoverlay / flow / PortSecurityTest.java
index 4d7409b24912c872bc79496422ca46b447de5976..4fba089868c9cfbec01043fc6e1ce2d41f6797af 100755 (executable)
@@ -17,7 +17,9 @@ import java.util.Set;
 \r
 import org.junit.Before;\r
 import org.junit.Test;\r
+import org.junit.runner.RunWith;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;\r
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.PolicyManager;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;\r
@@ -34,21 +36,32 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4Match;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6Match;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.overlay.rev150105.TunnelTypeVxlan;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
+import org.powermock.api.mockito.PowerMockito;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
 \r
 import com.google.common.collect.ImmutableList;\r
 import com.google.common.collect.ImmutableSet;\r
 \r
 import static org.junit.Assert.*;\r
 \r
+@RunWith(PowerMockRunner.class)\r
+@PrepareForTest({PolicyManager.class})\r
 public class PortSecurityTest extends FlowTableTest {\r
-    protected static final Logger LOG =\r
-            LoggerFactory.getLogger(PortSecurityTest.class);\r
 \r
+    private Endpoint ep = localEP()\r
+            .setL3Address(ImmutableList.of(new L3AddressBuilder()\r
+            .setIpAddress(new IpAddress(new Ipv4Address("10.10.10.10")))\r
+            .build(),\r
+            new L3AddressBuilder()\r
+            .setIpAddress(new IpAddress(new Ipv6Address("2001:db8:85a3::8a2e:370:7334")))\r
+            .build()))\r
+        .build();\r
     @Override\r
     @Before\r
     public void setup() throws Exception {\r
+        PowerMockito.stub(PowerMockito.method(PolicyManager.class, "setSfcTableOffset")).toReturn(true);\r
+\r
         initCtx();\r
         table = new PortSecurity(ctx,ctx.getPolicyManager().getTABLEID_PORTSECURITY());\r
         super.setup();\r
@@ -97,7 +110,7 @@ public class PortSecurityTest extends FlowTableTest {
         for (Flow f : fm.getTableForNode(nodeId, ctx.getPolicyManager().getTABLEID_PORTSECURITY()).getFlow()) {\r
             flowMap.put(f.getId().getValue(), f);\r
             if (f.getMatch() != null && f.getMatch().getInPort() != null &&\r
-                ncs.contains(f.getMatch().getInPort().getValue())) {\r
+                (ncs.contains(f.getMatch().getInPort().getValue()))) {\r
                 assertTrue(f.getInstructions().equals(\r
                              FlowUtils.gotoTableInstructions(ctx.getPolicyManager().getTABLEID_INGRESS_NAT()))\r
                              || f.getInstructions().equals(\r
@@ -105,7 +118,7 @@ public class PortSecurityTest extends FlowTableTest {
                 count += 1;\r
             }\r
         }\r
-        assertEquals(2, count);\r
+        assertEquals(1, count);\r
         int numberOfFlows = fm.getTableForNode(nodeId, ctx.getPolicyManager().getTABLEID_PORTSECURITY()).getFlow().size();\r
         fm = dosync(flowMap);\r
         assertEquals(numberOfFlows, fm.getTableForNode(nodeId, ctx.getPolicyManager().getTABLEID_PORTSECURITY()).getFlow().size());\r
@@ -148,15 +161,6 @@ public class PortSecurityTest extends FlowTableTest {
 \r
     @Test\r
     public void testL3() throws Exception {\r
-        Endpoint ep = localEP()\r
-            .setL3Address(ImmutableList.of(new L3AddressBuilder()\r
-                .setIpAddress(new IpAddress(new Ipv4Address("10.10.10.10")))\r
-                .build(),\r
-                new L3AddressBuilder()\r
-                .setIpAddress(new IpAddress(new Ipv6Address("2001:db8:85a3::8a2e:370:7334")))\r
-                .build()))\r
-            .build();\r
-\r
         endpointManager.addEndpoint(ep);\r
 \r
         OfWriter fm = dosync(null);\r
@@ -197,4 +201,18 @@ public class PortSecurityTest extends FlowTableTest {
         fm = dosync(flowMap);\r
         assertEquals(numberOfFlows, fm.getTableForNode(nodeId, ctx.getPolicyManager().getTABLEID_PORTSECURITY()).getFlow().size());\r
     }\r
+\r
+    @Test\r
+    public void testExternal() throws Exception {\r
+        endpointManager.addEndpoint(ep);\r
+        switchManager.addSwitch(\r
+                new NodeId("openflow:12"),\r
+                new NodeConnectorId("openflow:12:1"),\r
+                ImmutableSet.of(new NodeConnectorId("openflow:12:2")),\r
+                new OfOverlayNodeConfigBuilder().setTunnel(\r
+                        ImmutableList.of(new TunnelBuilder().setTunnelType(TunnelTypeVxlan.class)\r
+                            .setNodeConnectorId(new NodeConnectorId("openflow:12:1"))\r
+                            .build())).build());\r
+        ctx.addTenant(baseTenant().build());\r
+    }\r
 }\r