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 NotificationProviderConfig config;
26 private DataBroker dataBroker;
29 public void initialization() {
30 dataBroker = mock(DataBroker.class);
31 notificationProviderService = mock(NotificationProviderService.class);
35 public void testCreateAllSuppliers() {
36 final NotificationProviderConfig config = createAllConfigSupplier();
37 final NotificationProvider provider = new NotificationProvider(notificationProviderService, dataBroker,
38 config.isFlowSupport(), config.isMeterSupport(),
39 config.isGroupSupport(),
40 config.isNodeConnectorStatSupport(),
41 config.isFlowStatSupport(),
42 config.isFlowTableStatSupport(),
43 config.isMeterStatSupport(),
44 config.isGroupStatSupport(),
45 config.isQueueStatSupport());
47 final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
48 int nrOfSuppliers = 0;
49 for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
50 if (supplier != null) {
54 assertEquals(11, nrOfSuppliers);
58 public void testCreateRootSuppliersOnly() {
59 final NotificationProviderConfig config = createNonConfigSupplier();
60 final NotificationProvider provider = new NotificationProvider(notificationProviderService, dataBroker,
61 config.isFlowSupport(), config.isMeterSupport(),
62 config.isGroupSupport(),
63 config.isNodeConnectorStatSupport(),
64 config.isFlowStatSupport(),
65 config.isFlowTableStatSupport(),
66 config.isMeterStatSupport(),
67 config.isGroupStatSupport(),
68 config.isQueueStatSupport());
70 final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
71 int nrOfSuppliers = 0;
72 for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
73 if (supplier != null) {
77 assertEquals(2, nrOfSuppliers);
80 private NotificationProviderConfig createAllConfigSupplier() {
81 final NotificationProviderConfigBuilder builder = new NotificationProviderConfigBuilder();
82 builder.setFlowStatSupport(true);
83 builder.setFlowSupport(true);
84 builder.setFlowTableStatSupport(true);
85 builder.setGroupStatSupport(true);
86 builder.setGroupSupport(true);
87 builder.setMeterStatSupport(true);
88 builder.setMeterSupport(true);
89 builder.setNodeConnectorStatSupport(true);
90 builder.setQueueStatSupport(true);
91 return builder.build();
94 private NotificationProviderConfig createNonConfigSupplier() {
95 final NotificationProviderConfigBuilder builder = new NotificationProviderConfigBuilder();
96 builder.setFlowStatSupport(false);
97 builder.setFlowSupport(false);
98 builder.setFlowTableStatSupport(false);
99 builder.setGroupStatSupport(false);
100 builder.setGroupSupport(false);
101 builder.setMeterStatSupport(false);
102 builder.setMeterSupport(false);
103 builder.setNodeConnectorStatSupport(false);
104 builder.setQueueStatSupport(false);
105 return builder.build();