2 * Copyright (c) 2014, 2016 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
8 package test.mock.util;
10 import org.opendaylight.controller.md.sal.common.api.routing.RouteChangeListener;
11 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
12 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
13 import org.opendaylight.controller.sal.binding.api.rpc.RpcContextIdentifier;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.OpendaylightFlowTableStatisticsService;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.OpendaylightQueueStatisticsService;
20 import org.opendaylight.yangtools.concepts.ListenerRegistration;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22 import org.opendaylight.yangtools.yang.binding.RpcService;
24 public class RpcProviderRegistryMock implements RpcProviderRegistry {
26 OpendaylightFlowStatisticsServiceMock flowStatisticsServiceMock;
27 OpendaylightFlowTableStatisticsServiceMock flowTableStatisticsServiceMock;
28 OpendaylightGroupStatisticsServiceMock groupStatisticsServiceMock;
29 OpendaylightMeterStatisticsServiceMock meterStatisticsServiceMock;
30 OpendaylightPortStatisticsServiceMock portStatisticsServiceMock;
31 OpendaylightQueueStatisticsServiceMock queueStatisticsServiceMock;
33 public RpcProviderRegistryMock(NotificationProviderServiceHelper notificationProviderService) {
34 this.flowStatisticsServiceMock = new OpendaylightFlowStatisticsServiceMock(notificationProviderService);
35 this.flowTableStatisticsServiceMock = new OpendaylightFlowTableStatisticsServiceMock(notificationProviderService);
36 this.groupStatisticsServiceMock = new OpendaylightGroupStatisticsServiceMock(notificationProviderService);
37 this.meterStatisticsServiceMock = new OpendaylightMeterStatisticsServiceMock(notificationProviderService);
38 this.portStatisticsServiceMock = new OpendaylightPortStatisticsServiceMock(notificationProviderService);
39 this.queueStatisticsServiceMock = new OpendaylightQueueStatisticsServiceMock(notificationProviderService);
43 public <T extends RpcService> BindingAwareBroker.RpcRegistration<T> addRpcImplementation(Class<T> serviceInterface, T implementation) throws IllegalStateException {
48 public <T extends RpcService> BindingAwareBroker.RoutedRpcRegistration<T> addRoutedRpcImplementation(Class<T> serviceInterface, T implementation) throws IllegalStateException {
53 public <L extends RouteChangeListener<RpcContextIdentifier, InstanceIdentifier<?>>> ListenerRegistration<L> registerRouteChangeListener(L listener) {
57 @SuppressWarnings("unchecked")
59 public <T extends RpcService> T getRpcService(Class<T> serviceInterface) {
60 if (serviceInterface.equals(OpendaylightFlowStatisticsService.class)) {
61 return (T)flowStatisticsServiceMock;
62 } else if (serviceInterface.equals(OpendaylightFlowTableStatisticsService.class)) {
63 return (T) flowTableStatisticsServiceMock;
64 } else if (serviceInterface.equals(OpendaylightGroupStatisticsService.class)) {
65 return (T) groupStatisticsServiceMock;
66 } else if (serviceInterface.equals(OpendaylightMeterStatisticsService.class)) {
67 return (T) meterStatisticsServiceMock;
68 } else if (serviceInterface.equals(OpendaylightPortStatisticsService.class)) {
69 return (T) portStatisticsServiceMock;
70 } else if (serviceInterface.equals(OpendaylightQueueStatisticsService.class)) {
71 return (T) queueStatisticsServiceMock;
77 public OpendaylightFlowStatisticsServiceMock getFlowStatisticsServiceMock() {
78 return flowStatisticsServiceMock;
81 public OpendaylightFlowTableStatisticsServiceMock getFlowTableStatisticsServiceMock() {
82 return flowTableStatisticsServiceMock;
85 public OpendaylightGroupStatisticsServiceMock getGroupStatisticsServiceMock() {
86 return groupStatisticsServiceMock;
89 public OpendaylightMeterStatisticsServiceMock getMeterStatisticsServiceMock() {
90 return meterStatisticsServiceMock;
93 public OpendaylightPortStatisticsServiceMock getPortStatisticsServiceMock() {
94 return portStatisticsServiceMock;
97 public OpendaylightQueueStatisticsServiceMock getQueueStatisticsServiceMock() {
98 return queueStatisticsServiceMock;