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.applications.notification.supplier;
11 import static org.junit.Assert.assertEquals;
12 import static org.mockito.Mockito.mock;
14 import java.util.List;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
18 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
19 import org.opendaylight.openflowplugin.applications.notification.supplier.tools.NotificationProviderConfig;
20 import org.opendaylight.openflowplugin.applications.notification.supplier.tools.NotificationProviderConfig.NotificationProviderConfigBuilder;
22 public class NotificationProviderTest {
24 private NotificationProviderService notificationProviderService;
25 private DataBroker dataBroker;
28 public void initialization() {
29 dataBroker = mock(DataBroker.class);
30 notificationProviderService = mock(NotificationProviderService.class);
34 public void testCreateAllSuppliers() throws Exception {
35 final NotificationProviderConfig config = createAllConfigSupplier();
36 try (NotificationProvider provider = new NotificationProvider(notificationProviderService, dataBroker,
37 config.isFlowSupport(), config.isMeterSupport(), config.isGroupSupport(),
38 config.isNodeConnectorStatSupport(), config.isFlowStatSupport(), config.isFlowTableStatSupport(),
39 config.isMeterStatSupport(), config.isGroupStatSupport(), config.isQueueStatSupport())) {
41 final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
42 int nrOfSuppliers = 0;
43 for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
44 if (supplier != null) {
48 assertEquals(11, nrOfSuppliers);
53 public void testCreateRootSuppliersOnly() {
54 final NotificationProviderConfig config = createNonConfigSupplier();
55 final NotificationProvider provider = new NotificationProvider(notificationProviderService, dataBroker,
56 config.isFlowSupport(), config.isMeterSupport(),
57 config.isGroupSupport(),
58 config.isNodeConnectorStatSupport(),
59 config.isFlowStatSupport(),
60 config.isFlowTableStatSupport(),
61 config.isMeterStatSupport(),
62 config.isGroupStatSupport(),
63 config.isQueueStatSupport());
65 final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
66 int nrOfSuppliers = 0;
67 for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
68 if (supplier != null) {
72 assertEquals(2, nrOfSuppliers);
75 private NotificationProviderConfig createAllConfigSupplier() {
76 final NotificationProviderConfigBuilder builder = new NotificationProviderConfigBuilder();
77 builder.setFlowStatSupport(true);
78 builder.setFlowSupport(true);
79 builder.setFlowTableStatSupport(true);
80 builder.setGroupStatSupport(true);
81 builder.setGroupSupport(true);
82 builder.setMeterStatSupport(true);
83 builder.setMeterSupport(true);
84 builder.setNodeConnectorStatSupport(true);
85 builder.setQueueStatSupport(true);
86 return builder.build();
89 private NotificationProviderConfig createNonConfigSupplier() {
90 final NotificationProviderConfigBuilder builder = new NotificationProviderConfigBuilder();
91 builder.setFlowStatSupport(false);
92 builder.setFlowSupport(false);
93 builder.setFlowTableStatSupport(false);
94 builder.setGroupStatSupport(false);
95 builder.setGroupSupport(false);
96 builder.setMeterStatSupport(false);
97 builder.setMeterSupport(false);
98 builder.setNodeConnectorStatSupport(false);
99 builder.setQueueStatSupport(false);
100 return builder.build();