Remove deprecated EOS services
[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 NotificationProviderConfig config;
26     private DataBroker dataBroker;
27
28     @Before
29     public void initialization() {
30         dataBroker = mock(DataBroker.class);
31         notificationProviderService = mock(NotificationProviderService.class);
32     }
33
34     @Test
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());
46         provider.start();
47         final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
48         int nrOfSuppliers = 0;
49         for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
50             if (supplier != null) {
51                 nrOfSuppliers++;
52             }
53         }
54         assertEquals(11, nrOfSuppliers);
55     }
56
57     @Test
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());
69         provider.start();
70         final List<NotificationSupplierDefinition<?>> listSuppliers = provider.getSupplierList();
71         int nrOfSuppliers = 0;
72         for (final NotificationSupplierDefinition<?> supplier : listSuppliers) {
73             if (supplier != null) {
74                 nrOfSuppliers++;
75             }
76         }
77         assertEquals(2, nrOfSuppliers);
78     }
79
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();
92     }
93
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();
106     }
107 }