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;
13 import java.util.List;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
17 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
18 import org.opendaylight.openflowplugin.applications.notification.supplier.tools.NotificationProviderConfig;
19 import org.opendaylight.openflowplugin.applications.notification.supplier.tools.NotificationProviderConfig.NotificationProviderConfigBuilder;
21 public class NotificationProviderTest {
23 private NotificationProviderService notificationProviderService;
24 private NotificationProviderConfig config;
25 private DataBroker dataBroker;
28 public void initialization() {
29 dataBroker = mock(DataBroker.class);
30 notificationProviderService = mock(NotificationProviderService.class);
34 public void testCreateAllSuppliers() {
35 final NotificationProviderConfig config = createAllConfigSupplier();
36 final NotificationProvider provider = new NotificationProvider(notificationProviderService, dataBroker, config.isFlowSupport(), config.isMeterSupport(),
37 config.isGroupSupport(), config.isNodeConnectorStatSupport(), config.isFlowStatSupport(),
38 config.isFlowTableStatSupport(), config.isMeterStatSupport(), config.isGroupStatSupport(),
39 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);
52 public void testCreateRootSuppliersOnly() {
53 final NotificationProviderConfig config = createNonConfigSupplier();
54 final NotificationProvider provider = new NotificationProvider(notificationProviderService, dataBroker, config.isFlowSupport(), config.isMeterSupport(),
55 config.isGroupSupport(), config.isNodeConnectorStatSupport(), config.isFlowStatSupport(),
56 config.isFlowTableStatSupport(), config.isMeterStatSupport(), config.isGroupStatSupport(),
57 config.isQueueStatSupport());
59 final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
60 int nrOfSuppliers = 0;
61 for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
62 if (supplier != null) {
66 assertEquals(2, nrOfSuppliers);
69 private NotificationProviderConfig createAllConfigSupplier() {
70 final NotificationProviderConfigBuilder builder = new NotificationProviderConfigBuilder();
71 builder.setFlowStatSupport(true);
72 builder.setFlowSupport(true);
73 builder.setFlowTableStatSupport(true);
74 builder.setGroupStatSupport(true);
75 builder.setGroupSupport(true);
76 builder.setMeterStatSupport(true);
77 builder.setMeterSupport(true);
78 builder.setNodeConnectorStatSupport(true);
79 builder.setQueueStatSupport(true);
80 return builder.build();
83 private NotificationProviderConfig createNonConfigSupplier() {
84 final NotificationProviderConfigBuilder builder = new NotificationProviderConfigBuilder();
85 builder.setFlowStatSupport(false);
86 builder.setFlowSupport(false);
87 builder.setFlowTableStatSupport(false);
88 builder.setGroupStatSupport(false);
89 builder.setGroupSupport(false);
90 builder.setMeterStatSupport(false);
91 builder.setMeterSupport(false);
92 builder.setNodeConnectorStatSupport(false);
93 builder.setQueueStatSupport(false);
94 return builder.build();