2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.lispflowmapping.northbound;
11 import static org.junit.Assert.assertEquals;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor;
16 import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase;
17 import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum;
18 import org.opendaylight.lispflowmapping.type.LispCanonicalAddressFormatEnum;
19 import org.opendaylight.lispflowmapping.type.lisp.address.LispAddress;
20 import org.opendaylight.lispflowmapping.type.lisp.address.LispAddressGeneric;
21 import org.opendaylight.lispflowmapping.type.lisp.address.LispIpv4Address;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispAFIAddress;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.DstAddress;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.DstAddressBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.SrcAddress;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lcafsourcedestaddress.SrcAddressBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.LispAddressContainer;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.ipv4.Ipv4AddressBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispaddress.lispaddresscontainer.address.lcafsourcedest.LcafSourceDestAddrBuilder;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
35 public class TransformerTest extends BaseTestCase{
39 public void before() throws Exception {
44 public void convertToLispAddress__ipv4() throws Exception {
46 LispAddress lispAddress = new LispIpv4Address("10.0.0.1");
48 LispAddressGeneric lispAddressGeneric = new LispAddressGeneric(lispAddress);
50 //assertEquals(lispAddress, new LispIpv4Address("10.0.0.1"));
52 assertEquals(lispAddress, LispAddressConvertorNB.convertToLispAddress(lispAddressGeneric));
57 public void transformLispAddressGeneric__ipv4() throws Exception {
59 LispAddressGeneric lispAddressGenericIn
60 = new LispAddressGeneric(AddressFamilyNumberEnum.IP.getIanaCode(),"10.0.0.1");
62 LispAddressContainer lispAddressContainer =
63 YangTransformerNB.transformLispAddress(
64 LispAddressConvertorNB.convertToLispAddress(lispAddressGenericIn));
66 LispAddressGeneric lispAddressGenericOut
67 = new LispAddressGeneric(YangTransformerNB.transformToLispAddress(lispAddressContainer));
70 assertEquals(lispAddressGenericIn.getIpAddress(),lispAddressGenericOut.getIpAddress());
75 public void transformLispAddressGeneric__srcdst() throws Exception {
77 LispAddressGeneric lispAddressGenericIn = new LispAddressGeneric();
79 LispAddressGeneric lispAddressGenericSrc
80 = new LispAddressGeneric(AddressFamilyNumberEnum.IP.getIanaCode(),"10.0.0.1");
82 LispAddressGeneric lispAddressGenericDst
83 = new LispAddressGeneric(AddressFamilyNumberEnum.IP.getIanaCode(),"20.0.0.2");
85 lispAddressGenericIn.setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode());
86 lispAddressGenericIn.setLcafType(LispCanonicalAddressFormatEnum.SOURCE_DEST.getLispCode());
88 lispAddressGenericIn.setSrcAddress(lispAddressGenericSrc);
89 lispAddressGenericIn.setDstAddress(lispAddressGenericDst);
91 lispAddressGenericIn.setSrcMaskLength((byte) 32);
92 lispAddressGenericIn.setDstMaskLength((byte) 32);
95 LispAddressContainer lispAddressContainer =
96 YangTransformerNB.transformLispAddress(
97 LispAddressConvertorNB.convertToLispAddress(lispAddressGenericIn));
99 LispAddressGeneric lispAddressGenericOut
100 = new LispAddressGeneric(YangTransformerNB.transformToLispAddress(lispAddressContainer));
103 assertEquals(lispAddressGenericIn.getSrcAddress().getIpAddress(),
104 lispAddressGenericOut.getSrcAddress().getIpAddress());
106 assertEquals(lispAddressGenericIn.getDstAddress().getIpAddress(),
107 lispAddressGenericOut.getDstAddress().getIpAddress());
113 public void transformLispAddressContainer__ipv4() throws Exception {
115 Ipv4Address ipv4AddressIn = new Ipv4Address("10.0.0.1");
116 LispAFIAddress lispAFIAddressIn = new Ipv4AddressBuilder()
117 .setIpv4Address(ipv4AddressIn)
118 .setAfi(AddressFamilyNumberEnum.IP.getIanaCode())
121 LispAddressContainer lispAddressContainerIn = LispAFIConvertor.toContainer(lispAFIAddressIn);
123 LispAddressGeneric lispAddressGeneric
124 = new LispAddressGeneric(YangTransformerNB.transformToLispAddress(lispAddressContainerIn));
126 LispAddressContainer lispAddressContainerOut
127 = YangTransformerNB.transformLispAddress(LispAddressConvertorNB.convertToLispAddress(lispAddressGeneric));
129 LispAFIAddress lispAFIAddressOut = LispAFIConvertor.toAFI(lispAddressContainerOut);
131 org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispIpv4Address lispIpv4AddressOut;
132 lispIpv4AddressOut = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LispIpv4Address) lispAFIAddressOut;
135 assertEquals(ipv4AddressIn.getValue(),
136 lispIpv4AddressOut.getIpv4Address().getValue());
142 public void transformLispAddressContainer__srcdst() throws Exception {
144 Ipv4Address ipv4AddressSrcIn = new Ipv4Address("10.0.0.1");
145 LispAFIAddress lispAFIAddressSrc = new Ipv4AddressBuilder()
146 .setIpv4Address(ipv4AddressSrcIn)
147 .setAfi(AddressFamilyNumberEnum.IP.getIanaCode())
150 Ipv4Address ipv4AddressDstIn = new Ipv4Address("20.0.0.2");
151 LispAFIAddress lispAFIAddressDst = new Ipv4AddressBuilder()
152 .setIpv4Address(ipv4AddressDstIn)
153 .setAfi(AddressFamilyNumberEnum.IP.getIanaCode())
156 SrcAddress srcAddress = new SrcAddressBuilder()
157 .setPrimitiveAddress(YangTransformerNB.toPrimitive(lispAFIAddressSrc))
160 DstAddress dstAddress = new DstAddressBuilder()
161 .setPrimitiveAddress(YangTransformerNB.toPrimitive(lispAFIAddressDst))
164 LispAFIAddress lispAFIAddressIn = new LcafSourceDestAddrBuilder()
165 .setAfi(AddressFamilyNumberEnum.LCAF.getIanaCode())
166 .setLcafType((short) LispCanonicalAddressFormatEnum.SOURCE_DEST.getLispCode())
167 .setSrcMaskLength((short) 32)
168 .setDstMaskLength((short) 32)
169 .setSrcAddress(srcAddress)
170 .setDstAddress(dstAddress)
173 LispAddressContainer lispAddressContainerIn = LispAFIConvertor.toContainer(lispAFIAddressIn);
175 LispAddressGeneric lispAddressGeneric
176 = new LispAddressGeneric(YangTransformerNB.transformToLispAddress(lispAddressContainerIn));
178 LispAddressContainer lispAddressContainerOut
179 = YangTransformerNB.transformLispAddress(LispAddressConvertorNB.convertToLispAddress(lispAddressGeneric));
181 LispAFIAddress lispAFIAddressOut = LispAFIConvertor.toAFI(lispAddressContainerOut);
184 org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafSourceDestAddress lcafSourceDestAddressOut;
185 lcafSourceDestAddressOut = (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.LcafSourceDestAddress) lispAFIAddressOut;
187 Ipv4Address ipv4AddressSrcOut
188 = ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.primitiveaddress.Ipv4)
189 lcafSourceDestAddressOut.getSrcAddress().getPrimitiveAddress())
190 .getIpv4Address().getIpv4Address();
192 Ipv4Address ipv4AddressDstOut
193 = ((org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.lispsimpleaddress.primitiveaddress.Ipv4)
194 lcafSourceDestAddressOut.getDstAddress().getPrimitiveAddress())
195 .getIpv4Address().getIpv4Address();
198 assertEquals(ipv4AddressSrcIn.getValue(),ipv4AddressSrcOut.getValue());
200 assertEquals(ipv4AddressDstIn.getValue(),ipv4AddressDstOut.getValue());