Remove Helium protobuff code from AppendEntries
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / entityownership / selectionstrategy / EntityOwnerSelectionStrategyConfigReaderTest.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 package org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertTrue;
13 import static org.mockito.Mockito.doReturn;
14 import static org.mockito.Mockito.doThrow;
15 import java.io.IOException;
16 import java.util.Hashtable;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.mockito.Mock;
20 import org.mockito.MockitoAnnotations;
21 import org.osgi.framework.BundleContext;
22 import org.osgi.framework.ServiceReference;
23 import org.osgi.service.cm.Configuration;
24 import org.osgi.service.cm.ConfigurationAdmin;
25
26 public class EntityOwnerSelectionStrategyConfigReaderTest {
27     @Mock
28     private BundleContext mockBundleContext;
29
30     @Mock
31     private ServiceReference<ConfigurationAdmin> mockConfigAdminServiceRef;
32
33     @Mock
34     private ConfigurationAdmin mockConfigAdmin;
35
36     @Mock
37     private Configuration mockConfig;
38
39     @Before
40     public void setup() throws IOException {
41         MockitoAnnotations.initMocks(this);
42
43         doReturn(mockConfigAdminServiceRef).when(mockBundleContext).getServiceReference(ConfigurationAdmin.class);
44         doReturn(mockConfigAdmin).when(mockBundleContext).getService(mockConfigAdminServiceRef);
45
46         doReturn(mockConfig).when(mockConfigAdmin).getConfiguration(EntityOwnerSelectionStrategyConfigReader.CONFIG_ID);
47     }
48
49     @Test
50     public void testReadStrategies(){
51         Hashtable<String, Object> props = new Hashtable<>();
52         props.put("test", "org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.LastCandidateSelectionStrategy,100");
53
54         doReturn(props).when(mockConfig).getProperties();
55
56         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
57
58         assertTrue(config.isStrategyConfigured("test"));
59
60         EntityOwnerSelectionStrategy strategy = config.createStrategy("test");
61         assertTrue(strategy instanceof LastCandidateSelectionStrategy);
62         assertEquals(100L, strategy.getSelectionDelayInMillis());
63     }
64
65     @Test
66     public void testReadStrategiesWithIOException() throws IOException {
67         doThrow(IOException.class).when(mockConfigAdmin).getConfiguration(EntityOwnerSelectionStrategyConfigReader.CONFIG_ID);
68
69         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
70
71         assertFalse(config.isStrategyConfigured("test"));
72     }
73
74     @Test
75     public void testReadStrategiesWithNullConfiguration() throws IOException {
76         doReturn(null).when(mockConfigAdmin).getConfiguration(EntityOwnerSelectionStrategyConfigReader.CONFIG_ID);
77
78         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
79
80         assertFalse(config.isStrategyConfigured("test"));
81     }
82
83     @Test
84     public void testReadStrategiesWithNullConfigurationProperties() throws IOException {
85         doReturn(null).when(mockConfig).getProperties();
86
87         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
88
89         assertFalse(config.isStrategyConfigured("test"));
90     }
91
92     @Test
93     public void testReadStrategiesInvalidDelay(){
94         Hashtable<String, Object> props = new Hashtable<>();
95         props.put("test", "org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.LastCandidateSelectionStrategy,foo");
96
97         doReturn(props).when(mockConfig).getProperties();
98
99         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
100
101         assertFalse(config.isStrategyConfigured("test"));
102     }
103
104     @Test
105     public void testReadStrategiesInvalidClassType(){
106         Hashtable<String, Object> props = new Hashtable<>();
107         props.put("test", "String,100");
108
109         doReturn(props).when(mockConfig).getProperties();
110
111         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
112
113         assertFalse(config.isStrategyConfigured("test"));
114     }
115
116     @Test
117     public void testReadStrategiesMissingDelay(){
118         Hashtable<String, Object> props = new Hashtable<>();
119         props.put("test", "org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.LastCandidateSelectionStrategy,100");
120         props.put("test1", "org.opendaylight.controller.cluster.datastore.entityownership.selectionstrategy.LastCandidateSelectionStrategy");
121
122         doReturn(props).when(mockConfig).getProperties();
123
124         EntityOwnerSelectionStrategyConfig config = new EntityOwnerSelectionStrategyConfigReader(mockBundleContext).getConfig();
125
126         assertEquals(100, config.createStrategy("test").getSelectionDelayInMillis());
127         assertEquals(0, config.createStrategy("test2").getSelectionDelayInMillis());
128     }
129
130 }