1 package io.fd.honeycomb.lisp.translate.read.trait;
4 import static org.junit.Assert.assertTrue;
5 import static org.junit.Assert.fail;
7 import io.fd.honeycomb.translate.write.WriteFailedException;
8 import org.junit.Before;
10 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
11 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6Afi;
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.LocalMappings;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.RemoteMappings;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.LocalMapping;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.LocalMappingBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.RemoteMapping;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.RemoteMappingBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.VrfSubtable;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24 public class MappingProducerTest implements MappingProducer {
26 private InstanceIdentifier<LocalMapping> validVrfLocalMappingId;
27 private InstanceIdentifier<LocalMapping> validBridgeDomainLocalMappingId;
28 private InstanceIdentifier<RemoteMapping> validVrfRemoteMappingId;
29 private InstanceIdentifier<RemoteMapping> validBridgeDomainRemoteMappingId;
31 private LocalMapping ipv4LocalMapping;
32 private LocalMapping ipv6LocalMapping;
33 private LocalMapping macLocalMapping;
35 private RemoteMapping ipv4RemoteMapping;
36 private RemoteMapping ipv6RemoteMapping;
37 private RemoteMapping macRemoteMapping;
41 validVrfLocalMappingId = InstanceIdentifier.create(VrfSubtable.class)
42 .child(LocalMappings.class)
43 .child(LocalMapping.class);
45 validBridgeDomainLocalMappingId = InstanceIdentifier.create(BridgeDomainSubtable.class)
46 .child(LocalMappings.class)
47 .child(LocalMapping.class);
49 validVrfRemoteMappingId = InstanceIdentifier.create(VrfSubtable.class)
50 .child(RemoteMappings.class)
51 .child(RemoteMapping.class);
53 validBridgeDomainRemoteMappingId = InstanceIdentifier.create(BridgeDomainSubtable.class)
54 .child(RemoteMappings.class)
55 .child(RemoteMapping.class);
57 ipv4LocalMapping = new LocalMappingBuilder()
58 .setEid(new EidBuilder()
59 .setAddressType(Ipv4Afi.class)
62 ipv6LocalMapping = new LocalMappingBuilder()
63 .setEid(new EidBuilder()
64 .setAddressType(Ipv6Afi.class)
66 macLocalMapping = new LocalMappingBuilder()
67 .setEid(new EidBuilder()
68 .setAddressType(MacAfi.class)
71 ipv4RemoteMapping = new RemoteMappingBuilder()
72 .setEid(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.EidBuilder()
73 .setAddressType(Ipv4Afi.class).build()).build();
75 ipv6RemoteMapping = new RemoteMappingBuilder()
76 .setEid(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.EidBuilder()
77 .setAddressType(Ipv6Afi.class).build()).build();
79 macRemoteMapping = new RemoteMappingBuilder()
80 .setEid(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.remote.mappings.remote.mapping.EidBuilder()
81 .setAddressType(MacAfi.class).build()).build();
85 public void testValidVrfLocal() {
86 testPositiveCase(validVrfLocalMappingId, ipv4LocalMapping);
87 testPositiveCase(validVrfLocalMappingId, ipv6LocalMapping);
91 public void testValidBridgeDomainLocal() {
92 testPositiveCase(validBridgeDomainLocalMappingId, macLocalMapping);
96 public void testInvalidVrfLocal() {
97 testNegativeCase(validVrfLocalMappingId, macLocalMapping);
101 public void testInvalidBridgeDomainLocal() {
102 testNegativeCase(validBridgeDomainLocalMappingId, ipv4LocalMapping);
103 testNegativeCase(validBridgeDomainLocalMappingId, ipv6LocalMapping);
108 public void testValidVrfRemote() {
109 testPositiveCase(validVrfRemoteMappingId, ipv4RemoteMapping);
110 testPositiveCase(validVrfRemoteMappingId, ipv6RemoteMapping);
114 public void testValidBridgeDomainRemote() {
115 testPositiveCase(validBridgeDomainRemoteMappingId, macRemoteMapping);
119 public void testInvalidVrfRemote() {
120 testNegativeCase(validVrfRemoteMappingId, macRemoteMapping);
124 public void testInvalidBridgeDomainRemote() {
125 testNegativeCase(validBridgeDomainRemoteMappingId, ipv4RemoteMapping);
126 testNegativeCase(validBridgeDomainRemoteMappingId, ipv6RemoteMapping);
129 private void testNegativeCase(final InstanceIdentifier<LocalMapping> identifier, final LocalMapping data) {
131 checkAllowedCombination(identifier, data);
132 } catch (WriteFailedException e) {
133 assertTrue(e instanceof WriteFailedException.CreateFailedException);
134 assertTrue(e.getCause() instanceof IllegalArgumentException);
138 fail("Test should have failed");
142 private void testPositiveCase(final InstanceIdentifier<LocalMapping> identifier, final LocalMapping data) {
144 checkAllowedCombination(identifier, data);
145 } catch (WriteFailedException e) {
146 fail("Test should have passed");
150 private void testNegativeCase(final InstanceIdentifier<RemoteMapping> identifier, final RemoteMapping data) {
152 checkAllowedCombination(identifier, data);
153 } catch (WriteFailedException e) {
154 assertTrue(e instanceof WriteFailedException.CreateFailedException);
155 assertTrue(e.getCause() instanceof IllegalArgumentException);
159 fail("Test should have failed");
163 private void testPositiveCase(final InstanceIdentifier<RemoteMapping> identifier, final RemoteMapping data) {
165 checkAllowedCombination(identifier, data);
166 } catch (WriteFailedException e) {
167 fail("Test should have passed");