2 * Copyright (c) 2015 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.openflowplugin.impl.statistics.services.direct;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertTrue;
13 import static org.mockito.Mockito.times;
14 import static org.mockito.Mockito.verify;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.junit.runner.RunWith;
19 import org.mockito.Mock;
20 import org.mockito.runners.MockitoJUnitRunner;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetFlowStatisticsInput;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetFlowStatisticsOutput;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatisticsInput;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatisticsOutput;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetMeterStatisticsInput;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetMeterStatisticsOutput;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetNodeConnectorStatisticsInput;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetNodeConnectorStatisticsOutput;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetQueueStatisticsInput;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetQueueStatisticsOutput;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.OpendaylightDirectStatisticsService;
32 import org.opendaylight.yangtools.yang.common.RpcError;
33 import org.opendaylight.yangtools.yang.common.RpcResult;
35 @RunWith(MockitoJUnitRunner.class)
36 public class OpendaylightDirectStatisticsServiceImplTest {
38 AbstractFlowDirectStatisticsService flowDirectStatisticsService;
40 AbstractGroupDirectStatisticsService groupDirectStatisticsService;
42 AbstractMeterDirectStatisticsService meterDirectStatisticsService;
44 AbstractPortDirectStatisticsService nodeConnectorDirectStatisticsService;
46 AbstractQueueDirectStatisticsService queueDirectStatisticsService;
49 GetGroupStatisticsInput getGroupStatisticsInput;
51 GetQueueStatisticsInput getQueueStatisticsInput;
53 GetFlowStatisticsInput getFlowStatisticsInput;
55 GetMeterStatisticsInput getMeterStatisticsInput;
57 GetNodeConnectorStatisticsInput getNodeConnectorStatisticsInput;
59 private OpendaylightDirectStatisticsService service;
60 private OpendaylightDirectStatisticsService emptyService;
63 public void setUp() throws Exception {
64 final OpendaylightDirectStatisticsServiceProvider provider = new OpendaylightDirectStatisticsServiceProvider();
65 provider.register(AbstractFlowDirectStatisticsService.class, flowDirectStatisticsService);
66 provider.register(AbstractGroupDirectStatisticsService.class, groupDirectStatisticsService);
67 provider.register(AbstractMeterDirectStatisticsService.class, meterDirectStatisticsService);
68 provider.register(AbstractPortDirectStatisticsService.class, nodeConnectorDirectStatisticsService);
69 provider.register(AbstractQueueDirectStatisticsService.class, queueDirectStatisticsService);
71 service = new OpendaylightDirectStatisticsServiceImpl(provider);
72 emptyService = new OpendaylightDirectStatisticsServiceImpl(new OpendaylightDirectStatisticsServiceProvider());
76 public void testGetGroupStatistics() throws Exception {
77 service.getGroupStatistics(getGroupStatisticsInput);
78 verify(groupDirectStatisticsService).handleAndReply(getGroupStatisticsInput);
82 public void testGetGroupStatisticsFail() throws Exception {
83 RpcResult<GetGroupStatisticsOutput> result = emptyService
84 .getGroupStatistics(getGroupStatisticsInput)
87 assertFalse(result.isSuccessful());
89 for (RpcError error : result.getErrors()) {
90 assertTrue(error.getMessage().contains(AbstractGroupDirectStatisticsService.class.getSimpleName()));
93 verify(groupDirectStatisticsService, times(0)).handleAndReply(getGroupStatisticsInput);
97 public void testGetQueueStatistics() throws Exception {
98 service.getQueueStatistics(getQueueStatisticsInput);
99 verify(queueDirectStatisticsService).handleAndReply(getQueueStatisticsInput);
103 public void testGetQueueStatisticsFail() throws Exception {
104 RpcResult<GetQueueStatisticsOutput> result = emptyService
105 .getQueueStatistics(getQueueStatisticsInput)
108 assertFalse(result.isSuccessful());
110 for (RpcError error : result.getErrors()) {
111 assertTrue(error.getMessage().contains(AbstractQueueDirectStatisticsService.class.getSimpleName()));
114 verify(queueDirectStatisticsService, times(0)).handleAndReply(getQueueStatisticsInput);
118 public void testGetFlowStatistics() throws Exception {
119 service.getFlowStatistics(getFlowStatisticsInput);
120 verify(flowDirectStatisticsService).handleAndReply(getFlowStatisticsInput);
124 public void testGetFlowStatisticsFail() throws Exception {
125 RpcResult<GetFlowStatisticsOutput> result = emptyService
126 .getFlowStatistics(getFlowStatisticsInput)
129 assertFalse(result.isSuccessful());
131 for (RpcError error : result.getErrors()) {
132 assertTrue(error.getMessage().contains(AbstractFlowDirectStatisticsService.class.getSimpleName()));
135 verify(flowDirectStatisticsService, times(0)).handleAndReply(getFlowStatisticsInput);
139 public void testGetMeterStatistics() throws Exception {
140 service.getMeterStatistics(getMeterStatisticsInput);
141 verify(meterDirectStatisticsService).handleAndReply(getMeterStatisticsInput);
145 public void testGetMeterStatisticsFail() throws Exception {
146 RpcResult<GetMeterStatisticsOutput> result = emptyService
147 .getMeterStatistics(getMeterStatisticsInput)
150 assertFalse(result.isSuccessful());
152 for (RpcError error : result.getErrors()) {
153 assertTrue(error.getMessage().contains(AbstractMeterDirectStatisticsService.class.getSimpleName()));
156 verify(meterDirectStatisticsService, times(0)).handleAndReply(getMeterStatisticsInput);
160 public void testGetNodeConnectorStatistics() throws Exception {
161 service.getNodeConnectorStatistics(getNodeConnectorStatisticsInput);
162 verify(nodeConnectorDirectStatisticsService).handleAndReply(getNodeConnectorStatisticsInput);
166 public void testGetNodeConnectorStatisticsFail() throws Exception {
167 RpcResult<GetNodeConnectorStatisticsOutput> result = emptyService
168 .getNodeConnectorStatistics(getNodeConnectorStatisticsInput)
171 assertFalse(result.isSuccessful());
173 for (RpcError error : result.getErrors()) {
174 assertTrue(error.getMessage().contains(AbstractPortDirectStatisticsService.class.getSimpleName()));
177 verify(nodeConnectorDirectStatisticsService, times(0)).handleAndReply(getNodeConnectorStatisticsInput);