NonRT-RIC A1 Northbound API
[nonrtric.git] / sdnc-a1-controller / oam / SdncReports / SdncReportsApi / src / test / java / com / onap / sdnc / reports / service / ReportServiceImplTest.java
1 package com.onap.sdnc.reports.service;
2
3 import static org.assertj.core.api.Assertions.assertThat;
4 import static org.junit.Assert.assertNotNull;
5
6 import java.util.ArrayList;
7 import java.util.Calendar;
8 import java.util.Date;
9 import java.util.List;
10
11 import org.apache.logging.log4j.LogManager;
12 import org.apache.logging.log4j.Logger;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.junit.runner.RunWith;
16 import org.mockito.Mockito;
17 import org.springframework.beans.factory.annotation.Autowired;
18 import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
19 import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
20 import org.springframework.boot.test.context.SpringBootTest;
21 import org.springframework.boot.test.context.TestConfiguration;
22 import org.springframework.boot.test.mock.mockito.MockBean;
23 import org.springframework.context.annotation.Bean;
24 import org.springframework.test.context.ContextConfiguration;
25 import org.springframework.test.context.junit4.SpringRunner;
26
27 import com.onap.sdnc.reports.Application;
28 import com.onap.sdnc.reports.config.EmbeddedMariaDbConfig;
29 import com.onap.sdnc.reports.model.DeviceConfig;
30 import com.onap.sdnc.reports.model.PreTestConfig;
31 import com.onap.sdnc.reports.repository.PreTestConfigRepository;
32 import com.onap.sdnc.reports.rest.model.PreTestModel;
33
34 import org.springframework.test.annotation.DirtiesContext;
35
36 @RunWith(SpringRunner.class)
37 @SpringBootTest(classes = Application.class)
38 @ContextConfiguration(classes = EmbeddedMariaDbConfig.class)
39 @DataJpaTest
40 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
41 @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
42 public class ReportServiceImplTest {
43
44         private static final Logger logger = LogManager.getLogger(ReportServiceImplTest.class);
45
46         private Date startDate, endDate;
47
48         @TestConfiguration
49         static class ReportServiceImplTestContextConfiguration {
50                 @Bean
51                 public IReportService reportService() {
52                         return new ReportServiceImpl();
53                 }
54         }
55
56         @Autowired
57         private IReportService reportService;
58
59         @MockBean
60         private PreTestConfigRepository preTestConfigRepository;
61
62         @Test
63         public void reportServiceAutoWireTest() {
64                 assertNotNull("Due to Application Context Fail", reportService);
65         }
66
67         @Test
68         public void preTestConfigRepositoryAutoWireTest() {
69                 assertNotNull("Due to Application Context Fail", preTestConfigRepository);
70         }
71
72         @Before
73         public void setUp() {
74                 DeviceConfig deviceConfig = new DeviceConfig();
75                 deviceConfig.setDeviceIP("0.0.0.0");
76                 deviceConfig.setPreTestConfig(null);
77                 deviceConfig.setCreationDate(new Date().toLocaleString());
78
79                 PreTestConfig obj = new PreTestConfig();
80                 obj.setDevice(deviceConfig);
81                 obj.setExecuationDetails("Ping Successful");
82                 obj.setResult("Pass");
83
84                 obj.setTestName("Network Layer");
85                 obj.setTimestamp(new Date());
86
87                 Calendar calendar = Calendar.getInstance();
88
89                 calendar.add(Calendar.DATE, -7);
90                 calendar.add(Calendar.HOUR_OF_DAY, 00);
91                 calendar.add(Calendar.MINUTE, 00);
92                 calendar.add(Calendar.SECOND, 00);
93                 calendar.add(Calendar.MILLISECOND, 00);
94                 startDate = calendar.getTime();
95
96                 Calendar endDateCalendar = Calendar.getInstance();
97
98                 endDateCalendar.add(Calendar.HOUR_OF_DAY, 23);
99                 endDateCalendar.add(Calendar.MINUTE, 59);
100                 calendar.add(Calendar.SECOND, 00);
101                 endDateCalendar.add(Calendar.MILLISECOND, 00);
102                 endDate = endDateCalendar.getTime();
103
104                 System.out.println(
105                                 "Before Call : startDate " + startDate.toLocaleString() + " endDate : " + endDate.toLocaleString());
106                 List<PreTestConfig> configList = new ArrayList<>();
107                 configList.add(obj);
108                 Mockito.when(preTestConfigRepository.findReportByDeviceIP(startDate, endDate, "0.0.0.0"))
109                                 .thenReturn(configList);
110         }
111
112         @Test
113         public void whenFindByDeviceName_thenReturPreTest() {
114                 int expectedTestId = 0;
115                 System.out.println(
116                                 "Test Call : startDate " + startDate.toLocaleString() + " endDate : " + endDate.toLocaleString());
117
118                 List<PreTestModel> testList;
119                 try {
120                         testList = reportService.findReportByDeviceIP(startDate, endDate, "10.0.0.0");
121                         assertThat(testList.get(0).getTestid()).isEqualTo(expectedTestId);
122                 } catch (Exception e) {
123
124                         e.printStackTrace();
125                 }
126         }
127 }