Junit class TestSliAuditActivator.java added
[appc.git] / appc-config / appc-config-audit / provider / src / test / java / org / onap / sdnc / config / audit / node / TestSliAuditActivator.java
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright 2019 IBM
6  *=================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.sdnc.config.audit.node;
21
22 import static org.hamcrest.CoreMatchers.is;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertThat;
25 import static org.mockito.Matchers.any;
26 import static org.mockito.Matchers.anyString;
27 import static org.mockito.Mockito.verify;
28 import static org.mockito.Mockito.when;
29
30 import java.lang.reflect.Field;
31 import java.util.Dictionary;
32 import java.util.List;
33
34 import org.junit.After;
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.mockito.Mock;
39 import org.mockito.MockitoAnnotations;
40 import org.mockito.runners.MockitoJUnitRunner;
41 import org.onap.sdnc.config.audit.SliAuditActivator;
42 import org.osgi.framework.BundleContext;
43 import org.osgi.framework.ServiceRegistration;
44
45 @RunWith(MockitoJUnitRunner.class)
46 public class TestSliAuditActivator {
47
48     SliAuditActivator sliAuditActivator;
49     Field registrationsField;
50
51     @Mock
52     BundleContext ctx;
53
54     @Mock
55     ServiceRegistration serviceRegistration;
56
57     @Before
58     public void setUp() throws Exception {
59         this.sliAuditActivator = new SliAuditActivator();
60         this.registrationsField = SliAuditActivator.class.getDeclaredField("registrations");
61         registrationsField.setAccessible(true);
62         MockitoAnnotations.initMocks(this);
63         when(ctx.registerService(anyString(), any(CompareNode.class), any(Dictionary.class)))
64                 .thenReturn(serviceRegistration);
65     }
66
67     @Test
68     public void start() throws Exception {
69         sliAuditActivator.start(ctx);
70         List<ServiceRegistration> registrations = (List<ServiceRegistration>) registrationsField.get(sliAuditActivator);
71         assertEquals(1, registrations.size());
72         assertThat(registrations.get(0), is(serviceRegistration));
73     }
74
75     @Test
76     public void stop() throws Exception {
77         sliAuditActivator.start(ctx);
78         sliAuditActivator.stop(ctx);
79         verify(serviceRegistration).unregister();
80     }
81   
82     @After
83     public void startService() throws Exception {
84        sliAuditActivator.stop(ctx);
85     }
86 }
87