2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (c) 2019 Samsung
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.openecomp.sdc.asdctool.impl.validator.utils;
24 import org.junit.After;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 import org.mockito.Mock;
29 import org.mockito.junit.MockitoJUnitRunner;
30 import org.openecomp.sdc.asdctool.impl.validator.config.ValidationConfigManager;
31 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
32 import org.powermock.core.classloader.annotations.PrepareForTest;
33 import org.powermock.modules.junit4.PowerMockRunner;
34 import org.powermock.modules.junit4.PowerMockRunnerDelegate;
37 import java.util.Arrays;
38 import java.util.List;
39 import java.util.Objects;
40 import java.util.SortedSet;
41 import java.util.TreeSet;
43 import static org.junit.Assert.assertEquals;
44 import static org.junit.Assert.assertNotNull;
45 import static org.mockito.Mockito.when;
47 @RunWith(PowerMockRunner.class)
48 @PowerMockRunnerDelegate(MockitoJUnitRunner.class)
49 @PrepareForTest({ReportManager.class})
50 public class ReportManagerTest {
52 private static final String VERTEX_1_ID = "testID1";
53 private static final String TASK_1_FAILED_NAME = "testFailedTask1";
54 private static final String TASK_1_NAME = "testTask1";
55 private static final String VERTEX_2_ID = "testID2";
56 private static final String TASK_2_NAME = "testTask2";
57 private static final String TASK_2_FAILED_NAME = "testFailedTask2";
58 private static final String UNIQUE_ID = "uniqueID";
59 private static final String DUMMY_MESSAGE = "dummyMessage";
60 private static final String VALIDATOR_NAME = "testValidatorNamed";
61 private static final int COMPONENT_SUM = 0;
63 private static final String EXPECTED_CSV_HEADER =
64 "Vertex ID,Task Name,Success,Result Details,Result Description";
65 private static final String EXPECTED_OUTPUT_FILE_HEADER =
66 "-----------------------Validation Tool Results:-------------------------";
67 private static final String EXPECTED_OUTPUT_FILE_SUMMARY =
68 "-----------------------------------Validator Tool Summary-----------------------------------";
70 private final SortedSet<String> failedTasksNames =
71 new TreeSet<>(Arrays.asList(TASK_1_FAILED_NAME, TASK_2_FAILED_NAME));
72 private final SortedSet<String> successTasksNames =
73 new TreeSet<>(Arrays.asList(TASK_1_NAME, TASK_2_NAME));
75 private VertexResult successResult = new VertexResult();
78 GraphVertex vertexScanned;
82 String resourcePath = new File(Objects
83 .requireNonNull(ReportManagerTest.class.getClassLoader().getResource("")).getFile())
85 ValidationConfigManager.setOutputFullFilePath(resourcePath);
86 ValidationConfigManager.setCsvReportFilePath(resourcePath);
89 successResult.setStatus(true);
94 ReportManagerHelper.cleanReports();
98 public void testReportTaskEnd() {
100 ReportManager.reportTaskEnd(VERTEX_1_ID, TASK_1_NAME, successResult);
101 ReportManager.reportTaskEnd(VERTEX_2_ID, TASK_2_NAME, successResult);
102 ReportManager.printAllResults();
104 List reportCsvFile = ReportManagerHelper.getReportCsvFileAsList();
107 assertNotNull(reportCsvFile);
108 assertEquals(EXPECTED_CSV_HEADER, reportCsvFile.get(0));
109 assertEquals(getCsvExpectedResult(VERTEX_1_ID, TASK_1_NAME), reportCsvFile.get(1));
110 assertEquals(getCsvExpectedResult(VERTEX_2_ID, TASK_2_NAME), reportCsvFile.get(2));
114 public void testAddFailedVertex() {
116 ReportManager.addFailedVertex(TASK_1_NAME, VERTEX_1_ID);
117 ReportManager.reportEndOfToolRun();
119 List reportOutputFile = ReportManagerHelper.getReportOutputFileAsList();
122 assertNotNull(reportOutputFile);
124 assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
125 assertEquals(EXPECTED_OUTPUT_FILE_SUMMARY, reportOutputFile.get(2));
126 assertEquals("Task: " + TASK_1_NAME, reportOutputFile.get(3));
127 assertEquals("FailedVertices: [" + VERTEX_1_ID + "]", reportOutputFile.get(4));
131 public void testPrintValidationTaskStatus() {
133 when(vertexScanned.getUniqueId()).thenReturn(UNIQUE_ID);
136 ReportManager.printValidationTaskStatus(vertexScanned, TASK_1_NAME, false);
138 List reportOutputFile = ReportManagerHelper.getReportOutputFileAsList();
141 assertNotNull(reportOutputFile);
143 assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
144 assertEquals("-----------------------Vertex: " + UNIQUE_ID + ", Task " + TASK_1_NAME
145 + " failed-----------------------", reportOutputFile.get(2));
149 public void testWriteReportLineToFile() {
151 ReportManager.writeReportLineToFile(DUMMY_MESSAGE);
153 List reportOutputFile = ReportManagerHelper.getReportOutputFileAsList();
156 assertNotNull(reportOutputFile);
158 assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
159 assertEquals(DUMMY_MESSAGE, reportOutputFile.get(2));
163 public void testReportValidatorTypeSummary() {
165 ReportManager.reportValidatorTypeSummary(VALIDATOR_NAME, failedTasksNames, successTasksNames);
167 List reportOutputFile = ReportManagerHelper.getReportOutputFileAsList();
170 assertNotNull(reportOutputFile);
171 assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
173 assertEquals("-----------------------ValidatorExecuter " + VALIDATOR_NAME
174 + " Validation Summary-----------------------", reportOutputFile.get(2));
175 assertEquals("Failed tasks: [" + TASK_1_FAILED_NAME + ", " + TASK_2_FAILED_NAME + "]",
176 reportOutputFile.get(3));
177 assertEquals("Success tasks: [" + TASK_1_NAME + ", " + TASK_2_NAME + "]",
178 reportOutputFile.get(4));
182 public void testReportStartValidatorRun() {
184 ReportManager.reportStartValidatorRun(VALIDATOR_NAME, COMPONENT_SUM);
186 List reportOutputFile = ReportManagerHelper.getReportOutputFileAsList();
189 assertNotNull(reportOutputFile);
190 assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
191 assertEquals("------ValidatorExecuter " + VALIDATOR_NAME + " Validation Started, on "
192 + COMPONENT_SUM + " components---------", reportOutputFile.get(2));
196 public void testReportStartTaskRun() {
198 when(vertexScanned.getUniqueId()).thenReturn(UNIQUE_ID);
201 ReportManager.reportStartTaskRun(vertexScanned, TASK_1_NAME);
203 List reportOutputFile = ReportManagerHelper.getReportOutputFileAsList();
206 assertNotNull(reportOutputFile);
207 assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
208 assertEquals("-----------------------Vertex: " + UNIQUE_ID + ", Task " + TASK_1_NAME
209 + " Started-----------------------", reportOutputFile.get(2));
212 private String getCsvExpectedResult(String vertexID, String taskID) {
213 return String.join(",", new String[] {vertexID, taskID,
214 String.valueOf(successResult.getStatus()), successResult.getResult()});