56f1fba8a9a840134f39ae9904e726b90d0178f7
[dcaegen2/services/son-handler.git] / src / test / java / org / onap / dcaegen2 / services / sonhms / HoMetricsComponentTest.java
1 /*******************************************************************************
2  *  ============LICENSE_START=======================================================
3  *  son-handler
4  *  ================================================================================
5  *   Copyright (C) 2019 Wipro Limited.
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  *******************************************************************************/
21
22 package org.onap.dcaegen2.services.sonhms;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertTrue;
27 import static org.mockito.Mockito.when;
28
29 import fj.data.Either;
30
31 import java.io.BufferedReader;
32 import java.io.InputStream;
33 import java.io.InputStreamReader;
34 import java.util.ArrayList;
35 import java.util.List;
36
37 import org.junit.BeforeClass;
38 import org.junit.Test;
39 import org.junit.runner.RunWith;
40 import org.mockito.InjectMocks;
41 import org.mockito.Mock;
42 import org.onap.dcaegen2.services.sonhms.dao.HandOverMetricsRepository;
43 import org.onap.dcaegen2.services.sonhms.entity.HandOverMetrics;
44 import org.onap.dcaegen2.services.sonhms.model.HoDetails;
45 import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
46 import org.powermock.api.mockito.PowerMockito;
47 import org.powermock.core.classloader.annotations.PrepareForTest;
48 import org.powermock.modules.junit4.PowerMockRunner;
49 import org.powermock.modules.junit4.PowerMockRunnerDelegate;
50 import org.springframework.boot.test.context.SpringBootTest;
51 import org.springframework.test.context.junit4.SpringRunner;
52
53 @RunWith(PowerMockRunner.class)
54 @PowerMockRunnerDelegate(SpringRunner.class)
55 @PrepareForTest({ BeanUtil.class })
56 @SpringBootTest(classes = HoMetricsComponentTest.class)
57 public class HoMetricsComponentTest {
58     
59     @Mock
60     HandOverMetricsRepository handOverMetricsRepositoryMock;
61     
62     @InjectMocks
63     HoMetricsComponent hoMetricsComponent;
64     
65     static String hoDetailsString;
66     
67     @BeforeClass
68     public static void setup() {
69         hoDetailsString=readFromFile("/hoDetails.json");
70     }
71     
72     @Test
73     public void getHoMetricsTest() {
74         PowerMockito.mockStatic(BeanUtil.class);
75         PowerMockito.when(BeanUtil
76                 .getBean(HandOverMetricsRepository.class)).thenReturn(handOverMetricsRepositoryMock);
77         when(handOverMetricsRepositoryMock.getHandOverMetrics("")).thenReturn(hoDetailsString);
78         Either<List<HoDetails>, Integer> result = hoMetricsComponent.getHoMetrics("");
79         assertNotNull(result.left().value());
80         when(handOverMetricsRepositoryMock.getHandOverMetrics("")).thenReturn("wrongText");
81         result = hoMetricsComponent.getHoMetrics("");
82         int res= result.right().value();
83         assertEquals(400,res);
84     }
85     
86     @Test
87     public void getAllTest() {
88         PowerMockito.mockStatic(BeanUtil.class);
89         PowerMockito.when(BeanUtil
90                 .getBean(HandOverMetricsRepository.class)).thenReturn(handOverMetricsRepositoryMock);
91         HandOverMetrics hoMetrics = new HandOverMetrics();
92         hoMetrics.setHoDetails("hoDetails");
93         hoMetrics.setSrcCellId("cell1");
94         List<HandOverMetrics> hoList = new ArrayList<>();
95         hoList.add(hoMetrics);
96         Iterable<HandOverMetrics> response = hoList;
97         when(handOverMetricsRepositoryMock.findAll()).thenReturn(response);
98         assertTrue(hoMetricsComponent.getAll().isLeft());
99         when(handOverMetricsRepositoryMock.findAll()).thenReturn(null);
100         assertTrue(hoMetricsComponent.getAll().isRight());
101     }
102
103         @Test
104         public void update() {
105                 PowerMockito.mockStatic(BeanUtil.class);
106                 PowerMockito.when(BeanUtil.getBean(HandOverMetricsRepository.class)).thenReturn(handOverMetricsRepositoryMock);
107                 assertEquals(true, hoMetricsComponent.update("HODetails", "12"));
108         }
109
110     private static String readFromFile(String file) { 
111         String content = new String();
112         try {
113
114             InputStream is = HoMetricsComponentTest.class.getResourceAsStream(file);
115             BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
116             content = bufferedReader.readLine();
117             String temp;
118             while ((temp = bufferedReader.readLine()) != null) {
119                 content = content.concat(temp);
120             }
121             content = content.trim();
122             bufferedReader.close();
123         } catch (Exception e) {
124             content = null;
125         }
126         return content;
127     }
128 }