diff options
author | Michal Cmarada <mcmarada@cisco.com> | 2018-11-19 14:59:14 +0100 |
---|---|---|
committer | Michal Cmarada <mcmarada@cisco.com> | 2018-11-19 14:59:14 +0100 |
commit | 718e9a3c7cac01860f3e3fe6174fcc1bd33fb4eb (patch) | |
tree | 34fae7680450e166e845f0c2db84ed8c3215930f /acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util | |
parent | f9acfac8b701f9903a28edc98db127c36d73384f (diff) |
HC2VPP-291: ACL model bump
- bump ACL yang models
- fix ACL module implementation and validation
- fix ACL Unit tests
- update postman collection
Change-Id: Iaab64e6d92d17babc3ccef7921b41070c3716516
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
Diffstat (limited to 'acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util')
5 files changed, 333 insertions, 325 deletions
diff --git a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/MacIpAceDataExtractorTest.java b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/MacIpAceDataExtractorTest.java index ea01cedb6..5375ee429 100644 --- a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/MacIpAceDataExtractorTest.java +++ b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/MacIpAceDataExtractorTest.java @@ -17,7 +17,6 @@ package io.fd.hc2vpp.acl.util.ace.extractor; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -25,114 +24,56 @@ import io.fd.hc2vpp.common.test.util.CommonTests; import io.fd.vpp.jvpp.acl.types.MacipAclRule; import java.util.Arrays; import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.AceBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.ActionsBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.MatchesBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.actions.packet.handling.DenyBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.actions.packet.handling.PermitBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.VppMacipAce; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.VppMacipAceBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.macip.ace.VppMacipAceNodesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.macip.ace.vpp.macip.ace.nodes.AceIpVersion; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.macip.ace.vpp.macip.ace.nodes.ace.ip.version.AceIpv4; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.macip.ace.vpp.macip.ace.nodes.ace.ip.version.AceIpv4Builder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.macip.ace.vpp.macip.ace.nodes.ace.ip.version.AceIpv6; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.macip.ace.vpp.macip.ace.nodes.ace.ip.version.AceIpv6Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.Accept; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.Drop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.AceBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.ActionsBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.L3; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.Ipv4; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.Ipv6; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv4.header.fields.source.network.SourceIpv4Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv4.header.fields.source.network.SourceIpv4NetworkBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv6.header.fields.source.network.SourceIpv6Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv6.header.fields.source.network.SourceIpv6NetworkBuilder; public class MacIpAceDataExtractorTest extends AceDataExtractorTestCase implements MacIpAceDataExtractor, CommonTests { @Test - public void testFromMacIpAce() { - verifyExceptionalCase(() -> fromMacIpAce(new AceBuilder().build()), IllegalArgumentException.class); - verifyExceptionalCase(() -> fromMacIpAce(new AceBuilder().setMatches(new MatchesBuilder().build()).build()), - IllegalArgumentException.class); - - final VppMacipAce macipAce = new VppMacipAceBuilder().build(); - assertEquals(macipAce, fromMacIpAce(new AceBuilder().setMatches(new MatchesBuilder() - .setAceType(macipAce).build()).build())); - } - - @Test - public void testMacIpIsIpv6() { - assertFalse(macIpIsIpv6(new VppMacipAceBuilder().build())); - assertFalse(macIpIsIpv6( - new VppMacipAceBuilder().setVppMacipAceNodes(new VppMacipAceNodesBuilder().build()).build())); - assertFalse(macIpIsIpv6(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build())); - assertTrue(macIpIsIpv6(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build())); - } - - @Test public void testSourceMacAsBytes() { - assertTrue(Arrays.equals(DEFAULT_MAC_ADDRESS_BYTES, sourceMacAsBytes(new VppMacipAceBuilder().build()))); - assertTrue( - Arrays.equals(DEFAULT_MAC_ADDRESS_BYTES, sourceMacAsBytes(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(MAC_ADDRESS_BYTES, - sourceMacAsBytes(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setSourceMacAddress(MAC_ADDRESS).build()) - .build()))); + assertTrue(Arrays.equals(MAC_ADDRESS_BYTES, sourceMacAsBytes(MAC_ADDRESS))); } @Test public void sourceMacMaskAsBytes() { - assertTrue(Arrays.equals(DEFAULT_MAC_ADDRESS_BYTES, sourceMacMaskAsBytes(new VppMacipAceBuilder().build()))); - assertTrue(Arrays.equals(DEFAULT_MAC_ADDRESS_BYTES, - sourceMacMaskAsBytes(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(MAC_ADDRESS_BYTES, - sourceMacMaskAsBytes(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setSourceMacAddressMask(MAC_ADDRESS).build()) - .build()))); + assertTrue(Arrays.equals(MAC_ADDRESS_BYTES, sourceMacMaskAsBytes(MAC_ADDRESS))); } @Test public void testIpv4Address() { - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4Address(new VppMacipAceBuilder().build()))); - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4Address( - new VppMacipAceBuilder().setVppMacipAceNodes(new VppMacipAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4Address(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build()))); - assertTrue(Arrays.equals(IPV4_PREFIX_BYTES, ipv4Address(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv4Builder() - .setSourceIpv4Network(IPV4_PREFIX).build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4Address(new SourceIpv4NetworkBuilder().build()))); + assertTrue(Arrays.equals(IPV4_PREFIX_BYTES, + ipv4Address(new SourceIpv4NetworkBuilder().setSourceIpv4Network(IPV4_PREFIX).build()))); } @Test public void testIpv4AddressPrefix() { - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4AddressPrefix(new VppMacipAceBuilder().build())); - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4AddressPrefix( - new VppMacipAceBuilder().setVppMacipAceNodes(new VppMacipAceNodesBuilder().build()).build())); - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4AddressPrefix(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build())); - assertEquals(IPV4_PREFIX_VALUE, ipv4AddressPrefix(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv4Builder() - .setSourceIpv4Network(IPV4_PREFIX).build()).build()).build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4AddressPrefix(new SourceIpv4NetworkBuilder().build())); + assertEquals(IPV4_PREFIX_VALUE, + ipv4AddressPrefix(new SourceIpv4NetworkBuilder().setSourceIpv4Network(IPV4_PREFIX).build())); } @Test public void testIpv6Address() { - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6Address(new VppMacipAceBuilder().build()))); - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6Address( - new VppMacipAceBuilder().setVppMacipAceNodes(new VppMacipAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6Address(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build()))); - assertTrue(Arrays.equals(IPV6_PREFIX_BYTES, ipv6Address(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv6Builder() - .setSourceIpv6Network(IPV6_PREFIX).build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6Address(new SourceIpv6NetworkBuilder().build()))); + assertTrue(Arrays.equals(IPV6_PREFIX_BYTES, + ipv6Address(new SourceIpv6NetworkBuilder().setSourceIpv6Network(IPV6_PREFIX).build()))); } @Test public void testIpv6AddressPrefix() { - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6AddressPrefix(new VppMacipAceBuilder().build())); - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6AddressPrefix( - new VppMacipAceBuilder().setVppMacipAceNodes(new VppMacipAceNodesBuilder().build()).build())); - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6AddressPrefix(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build())); - assertEquals(IPV6_PREFIX_VALUE, ipv6AddressPrefix(new VppMacipAceBuilder().setVppMacipAceNodes( - new VppMacipAceNodesBuilder().setAceIpVersion(new AceIpv6Builder() - .setSourceIpv6Network(IPV6_PREFIX).build()).build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6AddressPrefix(new SourceIpv6NetworkBuilder().build())); + assertEquals(IPV6_PREFIX_VALUE, + ipv6AddressPrefix(new SourceIpv6NetworkBuilder().setSourceIpv6Network(IPV6_PREFIX).build())); } @Test @@ -141,11 +82,10 @@ public class MacIpAceDataExtractorTest extends AceDataExtractorTestCase implemen verifyExceptionalCase(() -> macIpAction(new AceBuilder().setActions(new ActionsBuilder().build()).build()), IllegalArgumentException.class); // this one must pass even if deny is not fully set, because of default value definition - assertEquals((byte) 0, macIpAction(new AceBuilder().setActions(new ActionsBuilder().setPacketHandling( - new DenyBuilder().build()).build()).build())); - - assertEquals((byte) 1, macIpAction(new AceBuilder().setActions(new ActionsBuilder().setPacketHandling( - new PermitBuilder().setPermit(true).build()).build()).build())); + assertEquals((byte) 0, macIpAction( + new AceBuilder().setActions(new ActionsBuilder().setForwarding(Drop.class).build()).build())); + assertEquals((byte) 1, macIpAction( + new AceBuilder().setActions(new ActionsBuilder().setForwarding(Accept.class).build()).build())); } @Test @@ -156,9 +96,10 @@ public class MacIpAceDataExtractorTest extends AceDataExtractorTestCase implemen rule.srcIpAddr = IPV4_PREFIX_BYTES; rule.srcIpPrefixLen = IPV4_PREFIX_VALUE; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv4); - assertEquals(IPV4_PREFIX, AceIpv4.class.cast(result).getSourceIpv4Network()); + final L3 result = parseMacIpAceL3(rule); + assertEquals(Ipv4.class, result.getImplementedInterface()); + assertEquals(IPV4_PREFIX, + ((SourceIpv4Network) ((Ipv4) result).getIpv4().getSourceNetwork()).getSourceIpv4Network()); } @Test @@ -167,9 +108,9 @@ public class MacIpAceDataExtractorTest extends AceDataExtractorTestCase implemen rule.isIpv6 = 0; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv4); - assertNull(AceIpv4.class.cast(result).getSourceIpv4Network()); + final L3 result = parseMacIpAceL3(rule); + assertEquals(Ipv4.class, result.getImplementedInterface()); + assertNull(((Ipv4) result).getIpv4()); } @Test @@ -180,9 +121,10 @@ public class MacIpAceDataExtractorTest extends AceDataExtractorTestCase implemen rule.srcIpAddr = IPV6_PREFIX_BYTES; rule.srcIpPrefixLen = IPV6_PREFIX_VALUE; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv6); - assertEquals(IPV6_PREFIX, AceIpv6.class.cast(result).getSourceIpv6Network()); + final L3 result = parseMacIpAceL3(rule); + assertEquals(Ipv6.class, result.getImplementedInterface()); + assertEquals(IPV6_PREFIX, ((SourceIpv6Network) ((Ipv6) result).getIpv6().getSourceNetwork()) + .getSourceIpv6Network()); } @Test @@ -191,9 +133,9 @@ public class MacIpAceDataExtractorTest extends AceDataExtractorTestCase implemen rule.isIpv6 = 1; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv6); - assertNull(AceIpv6.class.cast(result).getSourceIpv6Network()); + final L3 result = parseMacIpAceL3(rule); + assertEquals(Ipv6.class, result.getImplementedInterface()); + assertNull(((Ipv6) result).getIpv6()); } @Test diff --git a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/StandardAceDataExtractorTest.java b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/StandardAceDataExtractorTest.java index f22d6600a..627dba6b0 100644 --- a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/StandardAceDataExtractorTest.java +++ b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/ace/extractor/StandardAceDataExtractorTest.java @@ -25,159 +25,212 @@ import io.fd.hc2vpp.common.test.util.CommonTests; import io.fd.vpp.jvpp.acl.types.AclRule; import java.util.Arrays; import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.AceBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.ActionsBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.MatchesBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.actions.packet.handling.Deny; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.actions.packet.handling.DenyBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.access.lists.acl.access.list.entries.ace.actions.packet.handling.Permit; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.actions.packet.handling.Stateful; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.actions.packet.handling.StatefulBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.VppAce; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.VppAceBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.ace.VppAceNodesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.ace.vpp.ace.nodes.AceIpVersion; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.ace.vpp.ace.nodes.ace.ip.version.AceIpv4; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.ace.vpp.ace.nodes.ace.ip.version.AceIpv4Builder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.ace.vpp.ace.nodes.ace.ip.version.AceIpv6; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.vpp.ace.vpp.ace.nodes.ace.ip.version.AceIpv6Builder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.IcmpBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.IcmpV6Builder; +import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.acl.rev181022.AcceptAndReflect; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.Accept; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.Drop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.AceBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.ActionsBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.MatchesBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.L3; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.Ipv4; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.Ipv4Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.Ipv6; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.Ipv6Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv4.header.fields.destination.network.DestinationIpv4Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv4.header.fields.destination.network.DestinationIpv4NetworkBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv4.header.fields.source.network.SourceIpv4Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv4.header.fields.source.network.SourceIpv4NetworkBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv6.header.fields.destination.network.DestinationIpv6Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv6.header.fields.destination.network.DestinationIpv6NetworkBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv6.header.fields.source.network.SourceIpv6Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.acl.ipv6.header.fields.source.network.SourceIpv6NetworkBuilder; public class StandardAceDataExtractorTest extends AceDataExtractorTestCase implements StandardAceDataExtractor, CommonTests { @Test - public void testFromStandardAce() { - verifyExceptionalCase(() -> fromStandardAce(new AceBuilder().build()), IllegalArgumentException.class); - verifyExceptionalCase(() -> fromStandardAce(new AceBuilder().setMatches(new MatchesBuilder().build()).build()), - IllegalArgumentException.class); - - final VppAce ace = new VppAceBuilder().build(); - assertEquals(ace, fromStandardAce(new AceBuilder().setMatches(new MatchesBuilder() - .setAceType(ace).build()).build())); - } - - @Test public void testStandardIsIpv6WithoutMatch() { - assertFalse(standardIsIpv6(new VppAceBuilder().build(), null)); - assertFalse(standardIsIpv6(new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build(), null)); - assertFalse(standardIsIpv6(new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder() - .setIpProtocol(new IcmpBuilder().build()).build()).build(), null)); - assertTrue(standardIsIpv6(new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder() - .setIpProtocol(new IcmpV6Builder().build()).build()).build(), null)); - } - - @Test - public void testStandardIsIpv6WithMatch() { - final VppAce ipv6Ace = new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder() - .setIpProtocol(new IcmpV6Builder().build()).build()).build(); - - assertTrue(standardIsIpv6(ipv6Ace, new MatchesBuilder().build())); - assertTrue(standardIsIpv6(ipv6Ace, new MatchesBuilder().setAceType(new VppAceBuilder().build()).build())); - assertTrue(standardIsIpv6(ipv6Ace, new MatchesBuilder().setAceType(new VppAceBuilder() - .setVppAceNodes(new VppAceNodesBuilder().build()) - .build()).build())); - assertFalse(standardIsIpv6(ipv6Ace, new MatchesBuilder().setAceType(new VppAceBuilder() - .setVppAceNodes(new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()) - .build()).build())); + assertFalse(standardIsIpv6(null)); + assertFalse(standardIsIpv6(new MatchesBuilder().build())); + assertFalse(standardIsIpv6(new MatchesBuilder().setL3(new Ipv6Builder().build()).build())); + assertTrue(standardIsIpv6(new MatchesBuilder().setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .build()).build()).build())); } @Test public void testIpv4SourceAddress() { - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4SourceAddress(new VppAceBuilder().build()))); - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4SourceAddress( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4SourceAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build()))); - assertTrue(Arrays.equals(IPV4_PREFIX_BYTES, ipv4SourceAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder() - .setSourceIpv4Network(IPV4_PREFIX).build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4SourceAddress(new MatchesBuilder().build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, + ipv4SourceAddress(new MatchesBuilder().setL3(new Ipv4Builder().build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4SourceAddress(new MatchesBuilder() + .setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4SourceAddress(new MatchesBuilder() + .setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setSourceNetwork(new SourceIpv4NetworkBuilder().build()).build()).build()).build()))); + assertTrue(Arrays.equals(IPV4_PREFIX_BYTES, ipv4SourceAddress(new MatchesBuilder() + .setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setSourceNetwork( + new SourceIpv4NetworkBuilder().setSourceIpv4Network(IPV4_PREFIX).build()) + .build()).build()).build()))); } @Test public void testIpv4SourceAddressPrefix() { - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new VppAceBuilder().build())); - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build())); - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build())); - assertEquals(IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder() - .setSourceIpv4Network(IPV4_PREFIX).build()).build()).build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new MatchesBuilder().build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, + ipv4SourceAddressPrefix(new MatchesBuilder().setL3(new Ipv4Builder().build()).build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new MatchesBuilder() + .setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .build()).build()).build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new MatchesBuilder() + .setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setSourceNetwork(new SourceIpv4NetworkBuilder().build()).build()).build()).build())); + assertEquals(IPV4_PREFIX_VALUE, ipv4SourceAddressPrefix(new MatchesBuilder() + .setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setSourceNetwork( + new SourceIpv4NetworkBuilder().setSourceIpv4Network(IPV4_PREFIX).build()) + .build()).build()).build())); } @Test public void testIpv4DestinationAddress() { - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4DestinationAddress(new VppAceBuilder().build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4DestinationAddress(new MatchesBuilder().build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4DestinationAddress( + new MatchesBuilder().setL3(new Ipv4Builder().build()).build()))); assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4DestinationAddress( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4DestinationAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build()))); - assertTrue(Arrays.equals(IPV4_PREFIX_BYTES, ipv4DestinationAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder() - .setDestinationIpv4Network(IPV4_PREFIX).build()).build()).build()))); + new MatchesBuilder().setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV4_ADDRESS_BYTES, ipv4DestinationAddress( + new MatchesBuilder().setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setDestinationNetwork(new DestinationIpv4NetworkBuilder() + .build()).build()).build()).build()))); + assertTrue(Arrays.equals(IPV4_PREFIX_BYTES, ipv4DestinationAddress( + new MatchesBuilder().setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setDestinationNetwork( + new DestinationIpv4NetworkBuilder().setDestinationIpv4Network(IPV4_PREFIX) + .build()).build()).build()).build()))); } @Test public void testIpv4DestinationAddressPrefix() { - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix(new VppAceBuilder().build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix(new MatchesBuilder().build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix( + new MatchesBuilder().setL3(new Ipv4Builder().build()).build())); assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build())); - assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder().build()).build()).build())); - assertEquals(IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv4Builder() - .setDestinationIpv4Network(IPV4_PREFIX).build()).build()).build())); + new MatchesBuilder().setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .build()).build()).build())); + assertEquals(DEFAULT_IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix( + new MatchesBuilder().setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setDestinationNetwork(new DestinationIpv4NetworkBuilder() + .build()).build()).build()).build())); + assertEquals(IPV4_PREFIX_VALUE, ipv4DestinationAddressPrefix( + new MatchesBuilder().setL3(new Ipv4Builder().setIpv4( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv4.Ipv4Builder() + .setDestinationNetwork( + new DestinationIpv4NetworkBuilder().setDestinationIpv4Network(IPV4_PREFIX) + .build()).build()).build()).build())); } @Test public void testIpv6SourceAddress() { - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6SourceAddress(new VppAceBuilder().build()))); - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6SourceAddress( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6SourceAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build()))); - assertTrue(Arrays.equals(IPV6_PREFIX_BYTES, ipv6SourceAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder() - .setSourceIpv6Network(IPV6_PREFIX).build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6SourceAddress(new MatchesBuilder().build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, + ipv6SourceAddress(new MatchesBuilder().setL3(new Ipv6Builder().build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6SourceAddress(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6SourceAddress(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setSourceNetwork(new SourceIpv6NetworkBuilder().build()).build()).build()).build()))); + assertTrue(Arrays.equals(IPV6_PREFIX_BYTES, ipv6SourceAddress(new MatchesBuilder().setL3(new Ipv6Builder() + .setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setSourceNetwork( + new SourceIpv6NetworkBuilder().setSourceIpv6Network(IPV6_PREFIX).build()) + .build()).build()).build()))); } @Test public void ipv6SourceAddressPrefix() { - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new VppAceBuilder().build())); - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build())); - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build())); - assertEquals(IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder() - .setSourceIpv6Network(IPV6_PREFIX).build()).build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new MatchesBuilder().build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, + ipv6SourceAddressPrefix(new MatchesBuilder().setL3(new Ipv6Builder().build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .build()).build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setSourceNetwork(new SourceIpv6NetworkBuilder().build()).build()).build()).build())); + assertEquals(IPV6_PREFIX_VALUE, ipv6SourceAddressPrefix(new MatchesBuilder().setL3(new Ipv6Builder() + .setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setSourceNetwork( + new SourceIpv6NetworkBuilder().setSourceIpv6Network(IPV6_PREFIX).build()) + .build()).build()).build())); } @Test public void ipv6DestinationAddress() { - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6DestinationAddress(new VppAceBuilder().build()))); - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6DestinationAddress( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build()))); - assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6DestinationAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build()))); - assertTrue(Arrays.equals(IPV6_PREFIX_BYTES, ipv6DestinationAddress(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder() - .setDestinationIpv6Network(IPV6_PREFIX).build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6DestinationAddress(new MatchesBuilder().build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, + ipv6DestinationAddress(new MatchesBuilder().setL3(new Ipv6Builder().build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6DestinationAddress(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .build()).build()).build()))); + assertTrue(Arrays.equals(DEFAULT_IPV6_ADDRESS_BYTES, ipv6DestinationAddress(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setDestinationNetwork(new DestinationIpv6NetworkBuilder().build()).build()).build()) + .build()))); + assertTrue(Arrays.equals(IPV6_PREFIX_BYTES, ipv6DestinationAddress(new MatchesBuilder().setL3(new Ipv6Builder() + .setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setDestinationNetwork( + new DestinationIpv6NetworkBuilder().setDestinationIpv6Network(IPV6_PREFIX) + .build()) + .build()).build()).build()))); } @Test public void ipv6DestinationAddressPrefix() { - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new VppAceBuilder().build())); - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix( - new VppAceBuilder().setVppAceNodes(new VppAceNodesBuilder().build()).build())); - assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder().build()).build()).build())); - assertEquals(IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new VppAceBuilder().setVppAceNodes( - new VppAceNodesBuilder().setAceIpVersion(new AceIpv6Builder() - .setDestinationIpv6Network(IPV6_PREFIX).build()).build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new MatchesBuilder().build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, + ipv6DestinationAddressPrefix(new MatchesBuilder().setL3(new Ipv6Builder().build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .build()).build()).build())); + assertEquals(DEFAULT_IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new MatchesBuilder() + .setL3(new Ipv6Builder().setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setDestinationNetwork(new DestinationIpv6NetworkBuilder().build()).build()).build()) + .build())); + assertEquals(IPV6_PREFIX_VALUE, ipv6DestinationAddressPrefix(new MatchesBuilder().setL3(new Ipv6Builder() + .setIpv6( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l3.ipv6.Ipv6Builder() + .setDestinationNetwork( + new DestinationIpv6NetworkBuilder().setDestinationIpv6Network(IPV6_PREFIX) + .build()) + .build()).build()).build())); } @Test @@ -188,12 +241,10 @@ public class StandardAceDataExtractorTest extends AceDataExtractorTestCase imple // this one should pass because of default value assertEquals(0, standardAction( - new AceBuilder().setActions(new ActionsBuilder().setPacketHandling(new DenyBuilder().build()).build()) - .build())); + new AceBuilder().setActions(new ActionsBuilder().setForwarding(Drop.class).build()).build())); assertEquals(2, standardAction(new AceBuilder().setActions( - new ActionsBuilder().setPacketHandling(new StatefulBuilder().setPermitAndReflect(true).build()).build()) - .build())); + new ActionsBuilder().setForwarding(AcceptAndReflect.class).build()).build())); } @Test @@ -206,10 +257,13 @@ public class StandardAceDataExtractorTest extends AceDataExtractorTestCase imple rule.dstIpAddr = IPV4_2_PREFIX_BYTES; rule.dstIpPrefixLen = IPV4_2_PREFIX_VALUE; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv4); - assertEquals(IPV4_PREFIX, AceIpv4.class.cast(result).getSourceIpv4Network()); - assertEquals(IPV4_2_PREFIX, AceIpv4.class.cast(result).getDestinationIpv4Network()); + final L3 result = parseStandardAceL3(rule); + assertEquals(result.getImplementedInterface(), Ipv4.class); + assertEquals(IPV4_PREFIX, + ((SourceIpv4Network) ((Ipv4) result).getIpv4().getSourceNetwork()).getSourceIpv4Network()); + assertEquals(IPV4_2_PREFIX, + ((DestinationIpv4Network) ((Ipv4) result).getIpv4().getDestinationNetwork()) + .getDestinationIpv4Network()); } @Test @@ -218,10 +272,10 @@ public class StandardAceDataExtractorTest extends AceDataExtractorTestCase imple rule.isIpv6 = 0; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv4); - assertNull(AceIpv4.class.cast(result).getSourceIpv4Network()); - assertNull(AceIpv4.class.cast(result).getDestinationIpv4Network()); + final L3 result = parseStandardAceL3(rule); + assertEquals(result.getImplementedInterface(), Ipv4.class); + assertNull(((Ipv4) result).getIpv4().getSourceNetwork()); + assertNull(((Ipv4) result).getIpv4().getDestinationNetwork()); } @Test @@ -234,10 +288,13 @@ public class StandardAceDataExtractorTest extends AceDataExtractorTestCase imple rule.dstIpAddr = IPV6_2_PREFIX_BYTES; rule.dstIpPrefixLen = IPV6_2_PREFIX_VALUE; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv6); - assertEquals(IPV6_PREFIX, AceIpv6.class.cast(result).getSourceIpv6Network()); - assertEquals(IPV6_2_PREFIX, AceIpv6.class.cast(result).getDestinationIpv6Network()); + final L3 result = parseStandardAceL3(rule); + assertEquals(result.getImplementedInterface(), Ipv6.class); + assertEquals(IPV6_PREFIX, + ((SourceIpv6Network) ((Ipv6) result).getIpv6().getSourceNetwork()).getSourceIpv6Network()); + assertEquals(IPV6_2_PREFIX, + ((DestinationIpv6Network) ((Ipv6) result).getIpv6().getDestinationNetwork()) + .getDestinationIpv6Network()); } @Test @@ -246,19 +303,17 @@ public class StandardAceDataExtractorTest extends AceDataExtractorTestCase imple rule.isIpv6 = 1; - final AceIpVersion result = ipVersion(rule); - assertTrue(result instanceof AceIpv6); - assertNull(AceIpv6.class.cast(result).getSourceIpv6Network()); - assertNull(AceIpv6.class.cast(result).getDestinationIpv6Network()); + final L3 result = parseStandardAceL3(rule); + assertEquals(result.getImplementedInterface(), Ipv6.class); + assertNull((((Ipv6) result).getIpv6().getSourceNetwork())); + assertNull((((Ipv6) result).getIpv6().getDestinationNetwork())); } @Test public void testActions() { verifyExceptionalCase(() -> actions((byte) -1), IllegalArgumentException.class); - assertTrue(actions((byte) 0).getPacketHandling() instanceof Deny); - assertTrue(actions((byte) 1).getPacketHandling() instanceof Permit); - assertTrue(actions((byte) 2).getPacketHandling() instanceof Stateful); + assertTrue(actions((byte) 0).getForwarding().equals(Drop.class)); + assertTrue(actions((byte) 1).getForwarding().equals(Accept.class)); } - }
\ No newline at end of file diff --git a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/acl/AclInterfaceAssignmentRequestTest.java b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/acl/AclInterfaceAssignmentRequestTest.java index fb5d61458..1b7cf8c32 100644 --- a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/acl/AclInterfaceAssignmentRequestTest.java +++ b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/acl/AclInterfaceAssignmentRequestTest.java @@ -16,19 +16,20 @@ package io.fd.hc2vpp.acl.util.iface.acl; -import static io.fd.hc2vpp.acl.util.iface.acl.AclInterfaceAssignmentRequest.create; +import static io.fd.hc2vpp.acl.write.request.AclInterfaceAssignmentRequest.create; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.collect.ImmutableList; +import io.fd.hc2vpp.acl.AclIIds; import io.fd.hc2vpp.acl.util.AclContextManager; +import io.fd.hc2vpp.acl.write.request.AclInterfaceAssignmentRequest; import io.fd.hc2vpp.common.test.util.FutureProducer; import io.fd.hc2vpp.common.test.util.NamingContextHelper; import io.fd.hc2vpp.common.translate.util.NamingContext; @@ -43,11 +44,8 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.acl.rev161214.VppAclInterfaceAugmentation; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.acl.rev161214._interface.acl.attributes.Acl; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.attachment.points.Interface; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.attachment.points.InterfaceKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class AclInterfaceAssignmentRequestTest implements NamingContextHelper, FutureProducer { @@ -76,7 +74,7 @@ public class AclInterfaceAssignmentRequestTest implements NamingContextHelper, F @Mock private MappingContext mappingContext; - private InstanceIdentifier<Acl> validIdentifier; + private InstanceIdentifier<Interface> validIdentifier; private NamingContext interfaceContext; @Mock @@ -86,10 +84,8 @@ public class AclInterfaceAssignmentRequestTest implements NamingContextHelper, F public void setUp() { initMocks(this); - validIdentifier = InstanceIdentifier.create(Interfaces.class). - child(Interface.class, new InterfaceKey(INTERFACE_NAME)) - .augmentation(VppAclInterfaceAugmentation.class) - .child(Acl.class); + validIdentifier = AclIIds.ACLS_AP + .child(Interface.class, new InterfaceKey(INTERFACE_NAME)); interfaceContext = new NamingContext("iface", "interface-context"); diff --git a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/macip/MacIpInterfaceAssignmentRequestTest.java b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/macip/MacIpInterfaceAssignmentRequestTest.java index a7049b77f..145eec38e 100644 --- a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/macip/MacIpInterfaceAssignmentRequestTest.java +++ b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/iface/macip/MacIpInterfaceAssignmentRequestTest.java @@ -16,8 +16,8 @@ package io.fd.hc2vpp.acl.util.iface.macip; -import static io.fd.hc2vpp.acl.util.iface.macip.MacIpInterfaceAssignmentRequest.addNew; -import static io.fd.hc2vpp.acl.util.iface.macip.MacIpInterfaceAssignmentRequest.deleteExisting; +import static io.fd.hc2vpp.acl.write.request.MacIpInterfaceAssignmentRequest.addNew; +import static io.fd.hc2vpp.acl.write.request.MacIpInterfaceAssignmentRequest.deleteExisting; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; @@ -27,7 +27,9 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; +import io.fd.hc2vpp.acl.AclIIds; import io.fd.hc2vpp.acl.util.AclContextManager; +import io.fd.hc2vpp.acl.write.request.MacIpInterfaceAssignmentRequest; import io.fd.hc2vpp.common.test.util.FutureProducer; import io.fd.hc2vpp.common.test.util.NamingContextHelper; import io.fd.hc2vpp.common.translate.util.NamingContext; @@ -41,13 +43,8 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.acl.rev161214.VppAclInterfaceAugmentation; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.acl.rev161214._interface.acl.attributes.Acl; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.acl.rev161214._interface.acl.attributes.acl.Ingress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.acl.rev161214.vpp.macip.acls.base.attributes.VppMacipAcl; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.attachment.points.Interface; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.attachment.points.InterfaceKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class MacIpInterfaceAssignmentRequestTest implements NamingContextHelper,FutureProducer { @@ -66,7 +63,7 @@ public class MacIpInterfaceAssignmentRequestTest implements NamingContextHelper, @Mock private MappingContext mappingContext; - private InstanceIdentifier<VppMacipAcl> validIdentifier; + private InstanceIdentifier<Interface> validIdentifier; private NamingContext interfaceContext; @Mock private AclContextManager macIpAclContext; @@ -75,12 +72,7 @@ public class MacIpInterfaceAssignmentRequestTest implements NamingContextHelper, public void setUp() throws Exception { initMocks(this); - validIdentifier = InstanceIdentifier.create(Interfaces.class). - child(Interface.class, new InterfaceKey(INTERFACE_NAME)) - .augmentation(VppAclInterfaceAugmentation.class) - .child(Acl.class) - .child(Ingress.class) - .child(VppMacipAcl.class); + validIdentifier = AclIIds.ACLS_AP.child(Interface.class, new InterfaceKey(INTERFACE_NAME)); interfaceContext = new NamingContext("iface", "interface-context"); diff --git a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/protocol/ProtocolParsingTest.java b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/protocol/ProtocolParsingTest.java index 08fe6f38b..170080b66 100644 --- a/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/protocol/ProtocolParsingTest.java +++ b/acl/acl-impl/src/test/java/io/fd/hc2vpp/acl/util/protocol/ProtocolParsingTest.java @@ -24,41 +24,44 @@ import io.fd.honeycomb.test.tools.annotations.InjectTestData; import io.fd.vpp.jvpp.acl.types.AclRule; import org.junit.Test; import org.junit.runner.RunWith; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160708.AccessLists; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.access.lists.acl.access.list.entries.ace.matches.ace.type.VppAce; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.Icmp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.IcmpV6; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.Other; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.Tcp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.acl.rev170615.acl.ip.protocol.header.fields.ip.protocol.Udp; +import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.acl.rev181022.VppIcmpAceAugmentation; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.Acls; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.Ace; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.Icmp; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.Tcp; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.Udp; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.tcp.tcp.source.port.source.port.RangeOrOperator; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev181001.port.range.or.operator.port.range.or.operator.Range; @RunWith(HoneycombTestRunner.class) public class ProtocolParsingTest implements ProtoPreBindRuleProducer, IpProtocolReader, AclTestSchemaContext { private static final byte IGNORE_PROTOCOL = 0; - //TODO - remove after resolving how to address identity from different model in textual yang instance identifier - private VppAce extractAce(AccessLists accessLists) { - return VppAce.class - .cast(accessLists.getAcl().get(0).getAccessListEntries().getAce().get(0).getMatches().getAceType()); + private Ace extractAce(Acls acls) { + return acls.getAcl().get(0).getAces().getAce().get(0); } @Test - public void testIcmpRule(@InjectTestData(resourcePath = "/rules/icmp-rule.json") AccessLists acls) { + public void testIcmpRule(@InjectTestData(resourcePath = "/rules/icmp-rule.json") Acls acls) { final AclRule icmpRule = createPreBindRule(extractAce(acls)); assertEquals(1, icmpRule.proto); assertEquals(0, icmpRule.tcpFlagsMask); assertEquals(0, icmpRule.tcpFlagsValue); - final Icmp protocol = (Icmp)parseProtocol(icmpRule); - assertEquals(5, protocol.getIcmpNodes().getIcmpTypeRange().getFirst().shortValue()); - assertEquals(8, protocol.getIcmpNodes().getIcmpTypeRange().getLast().shortValue()); - assertEquals(1, protocol.getIcmpNodes().getIcmpCodeRange().getFirst().shortValue()); - assertEquals(3, protocol.getIcmpNodes().getIcmpCodeRange().getLast().shortValue()); + final Icmp protocol = (Icmp) parseProtocol(icmpRule); + assertEquals(5, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpTypeRange() + .getFirst().shortValue()); + assertEquals(8, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpTypeRange() + .getLast().shortValue()); + assertEquals(1, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpCodeRange() + .getFirst().shortValue()); + assertEquals(3, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpCodeRange() + .getLast().shortValue()); } @Test - public void testIcmpv6Rule(@InjectTestData(resourcePath = "/rules/icmp-v6-rule.json") AccessLists acls) { + public void testIcmpv6Rule(@InjectTestData(resourcePath = "/rules/icmp-v6-rule.json") Acls acls) { final AclRule icmpv6Rule = createPreBindRule(extractAce(acls)); assertEquals(58, icmpv6Rule.proto); @@ -69,43 +72,67 @@ public class ProtocolParsingTest implements ProtoPreBindRuleProducer, IpProtocol assertEquals(0, icmpv6Rule.tcpFlagsMask); assertEquals(0, icmpv6Rule.tcpFlagsValue); - final IcmpV6 protocol = (IcmpV6)parseProtocol(icmpv6Rule); - assertEquals(5, protocol.getIcmpV6Nodes().getIcmpTypeRange().getFirst().shortValue()); - assertEquals(8, protocol.getIcmpV6Nodes().getIcmpTypeRange().getLast().shortValue()); - assertEquals(1, protocol.getIcmpV6Nodes().getIcmpCodeRange().getFirst().shortValue()); - assertEquals(3, protocol.getIcmpV6Nodes().getIcmpCodeRange().getLast().shortValue()); + final Icmp protocol = (Icmp) parseProtocol(icmpv6Rule); + assertEquals(5, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpTypeRange() + .getFirst().shortValue()); + assertEquals(8, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpTypeRange() + .getLast().shortValue()); + assertEquals(1, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpCodeRange() + .getFirst().shortValue()); + assertEquals(3, protocol.getIcmp().augmentation(VppIcmpAceAugmentation.class).getVppIcmpAce().getIcmpCodeRange() + .getLast().shortValue()); } @Test - public void testTcpRule(@InjectTestData(resourcePath = "/rules/tcp-rule.json") AccessLists acls) { + public void testTcpRule(@InjectTestData(resourcePath = "/rules/tcp-rule.json") Acls acls) { final AclRule tcpRule = createPreBindRule(extractAce(acls)); assertEquals(6, tcpRule.proto); assertEquals(1, tcpRule.tcpFlagsMask); assertEquals(7, tcpRule.tcpFlagsValue); - final Tcp protocol = (Tcp)parseProtocol(tcpRule); - assertEquals(1, protocol.getTcpNodes().getSourcePortRange().getLowerPort().getValue().intValue()); - assertEquals(5487, protocol.getTcpNodes().getSourcePortRange().getUpperPort().getValue().intValue()); - assertEquals(87, protocol.getTcpNodes().getDestinationPortRange().getLowerPort().getValue().intValue()); - assertEquals(6745, protocol.getTcpNodes().getDestinationPortRange().getUpperPort().getValue().intValue()); + final Tcp protocol = (Tcp) parseProtocol(tcpRule); + assertEquals(1, + ((Range) ((RangeOrOperator) protocol.getTcp().getSourcePort().getSourcePort()).getPortRangeOrOperator()) + .getLowerPort().getValue().intValue()); + assertEquals(5487, + ((Range) ((RangeOrOperator) protocol.getTcp().getSourcePort().getSourcePort()).getPortRangeOrOperator()) + .getUpperPort().getValue().intValue()); + assertEquals(87, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.tcp.tcp.destination.port.destination.port.RangeOrOperator) protocol + .getTcp().getDestinationPort().getDestinationPort()) + .getPortRangeOrOperator()).getLowerPort().getValue().intValue()); + assertEquals(6745, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.tcp.tcp.destination.port.destination.port.RangeOrOperator) protocol + .getTcp().getDestinationPort().getDestinationPort()) + .getPortRangeOrOperator()).getUpperPort().getValue().intValue()); } @Test - public void testTcpRuleNoFlags(@InjectTestData(resourcePath = "/rules/tcp-rule-no-flags.json") AccessLists acls) { + public void testTcpRuleNoFlags(@InjectTestData(resourcePath = "/rules/tcp-rule-no-flags.json") Acls acls) { final AclRule tcpRule = createPreBindRule(extractAce(acls)); assertEquals(6, tcpRule.proto); assertEquals(123, tcpRule.srcportOrIcmptypeFirst); assertEquals(123, tcpRule.srcportOrIcmptypeLast); - assertEquals((short)65000, tcpRule.dstportOrIcmpcodeFirst); - assertEquals((short)65000, tcpRule.dstportOrIcmpcodeLast); + assertEquals((short) 65000, tcpRule.dstportOrIcmpcodeFirst); + assertEquals((short) 65000, tcpRule.dstportOrIcmpcodeLast); assertEquals(0, tcpRule.tcpFlagsMask); assertEquals(0, tcpRule.tcpFlagsValue); - final Tcp protocol = (Tcp)parseProtocol(tcpRule); - assertEquals(123, protocol.getTcpNodes().getSourcePortRange().getLowerPort().getValue().intValue()); - assertEquals(123, protocol.getTcpNodes().getSourcePortRange().getUpperPort().getValue().intValue()); - assertEquals(65000, protocol.getTcpNodes().getDestinationPortRange().getLowerPort().getValue().intValue()); - assertEquals(65000, protocol.getTcpNodes().getDestinationPortRange().getUpperPort().getValue().intValue()); + final Tcp protocol = (Tcp) parseProtocol(tcpRule); + assertEquals(123, + ((Range) ((RangeOrOperator) protocol.getTcp().getSourcePort().getSourcePort()).getPortRangeOrOperator()) + .getLowerPort().getValue().intValue()); + assertEquals(123, + ((Range) ((RangeOrOperator) protocol.getTcp().getSourcePort().getSourcePort()).getPortRangeOrOperator()) + .getUpperPort().getValue().intValue()); + assertEquals(65000, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.tcp.tcp.destination.port.destination.port.RangeOrOperator) protocol + .getTcp().getDestinationPort().getDestinationPort()) + .getPortRangeOrOperator()).getLowerPort().getValue().intValue()); + assertEquals(65000, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.tcp.tcp.destination.port.destination.port.RangeOrOperator) protocol + .getTcp().getDestinationPort().getDestinationPort()) + .getPortRangeOrOperator()).getUpperPort().getValue().intValue()); } @Test @@ -125,40 +152,36 @@ public class ProtocolParsingTest implements ProtoPreBindRuleProducer, IpProtocol } @Test - public void testUdpRule(@InjectTestData(resourcePath = "/rules/udp-rule.json") AccessLists acls) { + public void testUdpRule(@InjectTestData(resourcePath = "/rules/udp-rule.json") Acls acls) { final AclRule udpRule = createPreBindRule(extractAce(acls)); assertEquals(17, udpRule.proto); assertEquals(0, udpRule.tcpFlagsMask); assertEquals(0, udpRule.tcpFlagsValue); - final Udp protocol = (Udp)parseProtocol(udpRule); - assertEquals(1, protocol.getUdpNodes().getSourcePortRange().getLowerPort().getValue().intValue()); - assertEquals(5487, protocol.getUdpNodes().getSourcePortRange().getUpperPort().getValue().intValue()); - assertEquals(87, protocol.getUdpNodes().getDestinationPortRange().getLowerPort().getValue().intValue()); - assertEquals(6745, protocol.getUdpNodes().getDestinationPortRange().getUpperPort().getValue().intValue()); + final Udp protocol = (Udp) parseProtocol(udpRule); + assertEquals(1, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.udp.udp.source.port.source.port.RangeOrOperator) protocol + .getUdp().getSourcePort().getSourcePort()).getPortRangeOrOperator()) + .getLowerPort().getValue().intValue()); + assertEquals(5487, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.udp.udp.source.port.source.port.RangeOrOperator) protocol + .getUdp().getSourcePort().getSourcePort()).getPortRangeOrOperator()) + .getUpperPort().getValue().intValue()); + assertEquals(87, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.udp.udp.destination.port.destination.port.RangeOrOperator) protocol + .getUdp().getDestinationPort().getDestinationPort()) + .getPortRangeOrOperator()).getLowerPort().getValue().intValue()); + assertEquals(6745, + ((Range) ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev181001.acls.acl.aces.ace.matches.l4.udp.udp.destination.port.destination.port.RangeOrOperator) protocol + .getUdp().getDestinationPort().getDestinationPort()) + .getPortRangeOrOperator()).getUpperPort().getValue().intValue()); } - @Test - public void testOtherRule(@InjectTestData(resourcePath = "/rules/other-rule.json") AccessLists acls) { - final AclRule rule = createPreBindRule(extractAce(acls)); - final int protocolNumber = 64; - assertEquals(protocolNumber, rule.proto); - assertEquals(0, rule.srcportOrIcmptypeFirst); - assertEquals((short) 65535, rule.srcportOrIcmptypeLast); - assertEquals(0, rule.dstportOrIcmpcodeFirst); - assertEquals((short) 65535, rule.dstportOrIcmpcodeLast); - assertEquals(0, rule.tcpFlagsMask); - assertEquals(0, rule.tcpFlagsValue); - - final Other protocol = (Other)parseProtocol(rule); - assertEquals(protocolNumber, protocol.getOtherNodes().getProtocol().shortValue()); - } @Test - public void tesProtocolNotSpecified(@InjectTestData(resourcePath = "/rules/no-protocol-rule.json") AccessLists acls) { + public void tesProtocolNotSpecified(@InjectTestData(resourcePath = "/rules/no-protocol-rule.json") Acls acls) { final AclRule noProtocolRule = createPreBindRule(extractAce(acls)); assertEquals(IGNORE_PROTOCOL, noProtocolRule.proto); } - }
\ No newline at end of file |