Use uint types in arputil-impl tests
[genius.git] / arputil / arputil-impl / src / test / java / org / opendaylight / genius / arputil / test / ArpUtilTest.java
1 /*
2  * Copyright (c) 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3  *
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
7  */
8 package org.opendaylight.genius.arputil.test;
9
10 import static org.opendaylight.genius.arputil.test.ArpUtilTestUtil.INTERFACE_NAME;
11
12 import java.util.Map;
13 import java.util.concurrent.Future;
14 import javax.inject.Inject;
15 import org.junit.Assert;
16 import org.junit.Rule;
17 import org.junit.Test;
18 import org.junit.rules.MethodRule;
19 import org.opendaylight.genius.arputil.internal.ArpUtilImpl;
20 import org.opendaylight.infrautils.inject.guice.testutils.GuiceRule;
21 import org.opendaylight.infrautils.testutils.LogCaptureRule;
22 import org.opendaylight.infrautils.testutils.LogRule;
23 import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBrokerTest;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.GetMacInput;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.GetMacInputBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.GetMacOutput;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.SendArpResponseInput;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.SendArpResponseInputBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.interfaces.InterfaceAddress;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.interfaces.InterfaceAddressBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
35 import org.opendaylight.yangtools.yang.common.RpcResult;
36
37 public class ArpUtilTest extends AbstractConcurrentDataBrokerTest {
38
39     public @Rule LogRule logRule = new LogRule();
40     public @Rule LogCaptureRule logCaptureRule = new LogCaptureRule();
41     public @Rule MethodRule guice = new GuiceRule(new ArpUtilTestModule());
42
43     @Inject ArpUtilImpl arpUtil;
44
45     @Test
46     public void testGetMac() throws Exception {
47         final InterfaceAddress interfaceAddress = new InterfaceAddressBuilder()
48                 .setInterface(INTERFACE_NAME)
49                 .setIpAddress(new IpAddress(Ipv4Address.getDefaultInstance("192.168.0.1")))
50                 .setMacaddress(new PhysAddress("1F:1F:1F:1F:1F:1F")).build();
51
52         GetMacInput getMacInput = new GetMacInputBuilder()
53                 .setIpaddress(new IpAddress(Ipv4Address.getDefaultInstance("192.168.0.2")))
54                 .setInterfaceAddress(Map.of(interfaceAddress.key(), interfaceAddress)).build();
55
56         PacketReceived packetReceived = ArpUtilTestUtil.createPayload(0); //request payload
57
58         Future<RpcResult<GetMacOutput>> output = arpUtil.getMac(getMacInput);
59
60         arpUtil.onPacketReceived(packetReceived);
61
62         Assert.assertEquals("00:01:02:03:04:05", output.get().getResult().getMacaddress().getValue());
63     }
64
65     @Test
66     public void testSendArpResponse() throws Exception {
67         SendArpResponseInput builder = new SendArpResponseInputBuilder().setInterface(INTERFACE_NAME)
68                 .setSrcIpaddress(new IpAddress(Ipv4Address.getDefaultInstance("192.168.0.1")))
69                 .setDstIpaddress(new IpAddress(Ipv4Address.getDefaultInstance("192.168.0.2")))
70                 .setSrcMacaddress(new PhysAddress("1F:1F:1F:1F:1F:1F"))
71                 .setDstMacaddress(new PhysAddress("00:01:02:03:04:05")).build();
72
73         Assert.assertTrue(arpUtil.sendArpResponse(builder).get().isSuccessful());
74     }
75 }