8d39252a35fc2032c8e84db37cc58da524d50655
[openflowplugin.git] / applications / notification-supplier / src / test / java / org / opendaylight / openflowplugin / applications / notification / supplier / NotificationProviderTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.openflowplugin.applications.notification.supplier;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.mockito.Mockito.mock;
13
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;
21
22 public class NotificationProviderTest {
23
24     private NotificationProviderService notificationProviderService;
25     private DataBroker dataBroker;
26
27     @Before
28     public void initialization() {
29         dataBroker = mock(DataBroker.class);
30         notificationProviderService = mock(NotificationProviderService.class);
31     }
32
33     @Test
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())) {
40             provider.start();
41             final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
42             int nrOfSuppliers = 0;
43             for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
44                 if (supplier != null) {
45                     nrOfSuppliers++;
46                 }
47             }
48             assertEquals(11, nrOfSuppliers);
49         }
50     }
51
52     @Test
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());
64         provider.start();
65         final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
66         int nrOfSuppliers = 0;
67         for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
68             if (supplier != null) {
69                 nrOfSuppliers++;
70             }
71         }
72         assertEquals(2, nrOfSuppliers);
73     }
74
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();
87     }
88
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();
101     }
102 }