MRI version bump for Aluminium
[genius.git] / arputil / arputil-impl / src / test / java / org / opendaylight / genius / arputil / test / TestOdlInterfaceRpcService.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.DPN_ID;
11 import static org.opendaylight.genius.arputil.test.ArpUtilTestUtil.INTERFACE_NAME;
12 import static org.opendaylight.genius.arputil.test.ArpUtilTestUtil.PORT_NUMBER;
13 import static org.opendaylight.genius.arputil.test.ArpUtilTestUtil.URI;
14 import static org.opendaylight.yangtools.testutils.mockito.MoreAnswers.realOrException;
15
16 import com.google.common.util.concurrent.Futures;
17 import com.google.common.util.concurrent.ListenableFuture;
18 import java.util.ArrayList;
19 import java.util.List;
20 import org.mockito.Mockito;
21 import org.opendaylight.genius.mdsalutil.ActionInfo;
22 import org.opendaylight.genius.mdsalutil.actions.ActionOutput;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetEgressActionsForInterfaceInput;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetEgressActionsForInterfaceOutput;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetEgressActionsForInterfaceOutputBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetInterfaceFromIfIndexInput;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetInterfaceFromIfIndexOutput;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetInterfaceFromIfIndexOutputBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetPortFromInterfaceInput;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetPortFromInterfaceOutput;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetPortFromInterfaceOutputBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
35 import org.opendaylight.yangtools.yang.common.RpcResult;
36 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
37
38 public abstract class TestOdlInterfaceRpcService implements OdlInterfaceRpcService {
39
40     public static TestOdlInterfaceRpcService newInstance() {
41         return Mockito.mock(TestOdlInterfaceRpcService.class, realOrException());
42     }
43
44     @Override
45     public ListenableFuture<RpcResult<GetPortFromInterfaceOutput>> getPortFromInterface(
46             GetPortFromInterfaceInput input) {
47         RpcResultBuilder<GetPortFromInterfaceOutput> rpcResultBuilder;
48         GetPortFromInterfaceOutputBuilder output = new GetPortFromInterfaceOutputBuilder().setDpid(DPN_ID)
49                 .setPortname(INTERFACE_NAME).setPortno(PORT_NUMBER).setPhyAddress("1F:1F:1F:1F:1F:1F");
50         rpcResultBuilder = RpcResultBuilder.success();
51         rpcResultBuilder.withResult(output.build());
52         return Futures.immediateFuture(rpcResultBuilder.build());
53     }
54
55     @Override
56     public ListenableFuture<RpcResult<GetEgressActionsForInterfaceOutput>>
57         getEgressActionsForInterface(GetEgressActionsForInterfaceInput input) {
58
59         RpcResultBuilder<GetEgressActionsForInterfaceOutput> rpcResultBuilder;
60         List<ActionInfo> listActionInfo = new ArrayList<>();
61         List<Action> actionsList = new ArrayList<>();
62         listActionInfo.add(new ActionOutput(1, new Uri(URI)));
63         for (ActionInfo actionInfo : listActionInfo) {
64             actionsList.add(actionInfo.buildAction());
65         }
66         GetEgressActionsForInterfaceOutputBuilder output = new GetEgressActionsForInterfaceOutputBuilder()
67                 .setAction(actionsList);
68         rpcResultBuilder = RpcResultBuilder.success();
69         rpcResultBuilder.withResult(output.build());
70         return Futures.immediateFuture(rpcResultBuilder.build());
71     }
72
73     @Override
74     public ListenableFuture<RpcResult<GetInterfaceFromIfIndexOutput>>
75         getInterfaceFromIfIndex(GetInterfaceFromIfIndexInput input) {
76         RpcResultBuilder<GetInterfaceFromIfIndexOutput> rpcResultBuilder;
77         GetInterfaceFromIfIndexOutputBuilder output = new GetInterfaceFromIfIndexOutputBuilder()
78                 .setInterfaceName(ArpUtilTestUtil.INTERFACE_NAME);
79         rpcResultBuilder = RpcResultBuilder.success();
80         rpcResultBuilder.withResult(output.build());
81         return Futures.immediateFuture(rpcResultBuilder.build());
82     }
83 }