diff options
Diffstat (limited to 'src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java')
-rw-r--r-- | src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java | 149 |
1 files changed, 41 insertions, 108 deletions
diff --git a/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java b/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java index 34b71f4..5cd1634 100644 --- a/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java +++ b/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MeasFilterHandlerTest.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,43 +26,40 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.stream.Collectors; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.onap.dcaegen2.services.pmmapper.model.Event; import org.onap.dcaegen2.services.pmmapper.model.EventMetadata; -import org.onap.dcaegen2.services.pmmapper.model.MeasCollecFile; import org.onap.dcaegen2.services.pmmapper.model.MeasFilterConfig; import org.onap.dcaegen2.services.pmmapper.model.MeasFilterConfig.Filter; +import org.onap.dcaegen2.services.pmmapper.model.measurement.common.MeasurementFile; import org.onap.dcaegen2.services.pmmapper.utils.MeasConverter; import io.undertow.server.HttpServerExchange; +import utils.ArgumentCreator; import utils.EventUtils; @ExtendWith(MockitoExtension.class) class MeasFilterHandlerTest { + private static final Path FILTER_DIRECTORY = Paths.get("src/test/resources/filter_test/"); private static final String baseDir = "src/test/resources/filter_test/"; - private static final Path dataDirectory = Paths.get("src/test/resources/mapper_test/mapping_data/"); private static MeasConverter converter = new MeasConverter(); private MeasFilterHandler objUnderTest; @Mock private HttpServerExchange exchange; - @Mock - private EventMetadata metaData; @BeforeEach void setup() { @@ -70,34 +67,8 @@ class MeasFilterHandlerTest { } @Test - void measTypes_byCommaSeparation() throws IOException { - String inputPath = baseDir + "meas_results"; - String expected = EventUtils.fileContentsToString(Paths.get(inputPath + "_filtered.xml")); - Event event = generateEvent(inputPath, generateValidFilter()); - - objUnderTest.filterByMeasType(event); - - String actual = converter.convert(event.getMeasCollecFile()); - assertEquals(expected, actual); - } - - @Test - void measType_byID() throws IOException { - String inputPath = baseDir + "meas_type_and_r"; - String filteredString = EventUtils.fileContentsToString(Paths.get(inputPath + "_filtered.xml")); - Event event = generateEvent(inputPath, generateValidFilter()); - MeasCollecFile f = converter.convert(filteredString); - String expected = converter.convert(f); - - objUnderTest.filterByMeasType(event); - - String actual = converter.convert(event.getMeasCollecFile()); - assertEquals(expected, actual); - } - - @Test void skip_mapping_when_no_Filters_match() { - String inputPath = baseDir + "meas_results"; + String inputPath = baseDir + "lte/meas_results/test.xml"; Filter noMatchFilter = new MeasFilterConfig().new Filter(); noMatchFilter.setMeasTypes(Arrays.asList("nomatch1", "nomatch2")); Event event = generateEvent(inputPath, noMatchFilter); @@ -111,7 +82,7 @@ class MeasFilterHandlerTest { @Test void remove_events_that_does_not_match_filter() { - String inputPath = baseDir + "meas_type_and_r_manyInfo"; + String inputPath = baseDir + "lte/meas_type_and_r_manyinfo/test.xml"; Filter matchFilter = new MeasFilterConfig().new Filter(); matchFilter.setMeasTypes(Arrays.asList("a", "b")); @@ -129,71 +100,29 @@ class MeasFilterHandlerTest { @Test void skip_mapping_when_MeasData_isEmpty() { - String inputPath = baseDir + "meas_results"; + String inputPath = baseDir + "lte/meas_results/test.xml"; Event event = generateEvent(inputPath, generateValidFilter()); - event.getMeasCollecFile().replaceMeasData(Arrays.asList()); + event.getMeasurement().replacementMeasurementData(Arrays.asList()); assertFalse(objUnderTest.filterByMeasType(event)); } @Test void skip_filtering_if_filter_or_meastypes_isEmpty() { - String inputPath = baseDir + "meas_results"; + String inputPath = baseDir + "lte/meas_results/test.xml"; Filter emptyMeastypesFilter = new MeasFilterConfig().new Filter(); emptyMeastypesFilter.setMeasTypes(Arrays.asList()); Event event = generateEvent(inputPath, emptyMeastypesFilter); - MeasCollecFile originalMeasCollec = event.getMeasCollecFile(); + MeasurementFile originalMeasCollec = event.getMeasurement(); assertTrue(objUnderTest.filterByMeasType(event)); - assertEquals(originalMeasCollec,event.getMeasCollecFile()); + assertEquals(originalMeasCollec,event.getMeasurement()); event.setFilter(null); assertTrue(objUnderTest.filterByMeasType(event)); - assertEquals(originalMeasCollec,event.getMeasCollecFile()); - } - - @Test - void multiple_measInfos_measResults() { - String inputPath = baseDir + "meas_results_manyInfo"; - String filteredString = EventUtils.fileContentsToString(Paths.get(inputPath + "_filtered.xml")); - Event event = generateEvent(inputPath, generateValidFilter()); - - MeasCollecFile f = converter.convert(filteredString); - String expected = converter.convert(f); - objUnderTest.filterByMeasType(event); - - String actual = converter.convert(event.getMeasCollecFile()); - assertEquals(expected, actual); - } - - @Test - void multiple_measInfos_measTypeAndR() { - String inputPath = baseDir + "meas_type_and_r_manyInfo"; - String filteredString = EventUtils.fileContentsToString(Paths.get(inputPath + "_filtered.xml")); - Event event = generateEvent(inputPath, generateValidFilter()); - - MeasCollecFile f = converter.convert(filteredString); - String expected = converter.convert(f); - objUnderTest.filterByMeasType(event); - - String actual = converter.convert(event.getMeasCollecFile()); - assertEquals(expected, actual); - } - - @Test - void multiple_measValues() { - String inputPath = baseDir + "meas_type_and_r_manyMeasvalue"; - String filteredString = EventUtils.fileContentsToString(Paths.get(inputPath + "_filtered.xml")); - Event event = generateEvent(inputPath, generateValidFilter()); - - MeasCollecFile f = converter.convert(filteredString); - String expected = converter.convert(f); - objUnderTest.filterByMeasType(event); - - String actual = converter.convert(event.getMeasCollecFile()); - assertEquals(expected, actual); + assertEquals(originalMeasCollec,event.getMeasurement()); } @Test @@ -208,30 +137,34 @@ class MeasFilterHandlerTest { @Test void invalid_fileType() { Event event = mock(Event.class); - List<String> invalidFiletypes = Arrays.asList("Bpm.xml","Dpm.xml","Apm.xml.gz","Apm.xm1","asdf","bsdf"); + List<String> invalidFileTypes = Arrays.asList("Bpm.xml","Dpm.xml","Apm.xml.gz","Apm.xm1","asdf","bsdf"); when(event.getHttpServerExchange()).thenReturn(exchange); - when(exchange.getRequestPath()) - .thenReturn(invalidFiletypes.toString()); - - invalidFiletypes.forEach(c -> assertFalse(objUnderTest.filterByFileType(event))); + invalidFileTypes.forEach(fileName -> { + when(exchange.getRequestPath()) + .thenReturn(fileName); + assertFalse(objUnderTest.filterByFileType(event)); + }); } - @ParameterizedTest - @MethodSource("getValidMeas") - void applyFilterToValidMeasurements(Event testEvent) { + @MethodSource("getEvents") + void filter_valid_measurements(Event expectedEvent, Event testEvent) { objUnderTest.filterByMeasType(testEvent); + String actual = converter.convert(testEvent.getMeasurement()); + String expected = converter.convert(expectedEvent.getMeasurement()); + assertEquals(expected, actual); + } private Event generateEvent(String inputPath, Filter filter) { - String inputXml = EventUtils.fileContentsToString(Paths.get(inputPath + ".xml")); - Event event = new Event(exchange, inputXml, metaData, new HashMap<>(), ""); - event.setMeasCollecFile(converter.convert(inputXml)); + EventMetadata metadata = new EventMetadata(); + metadata.setFileFormatType(MeasConverter.LTE_FILE_TYPE); + Event event = EventUtils.makeMockEvent(EventUtils.fileContentsToString(Paths.get(inputPath)), metadata); event.setFilter(filter); return event; } - private Filter generateValidFilter() { + private static Filter generateValidFilter() { Filter filter; filter = new MeasFilterConfig().new Filter(); filter.setDictionaryVersion("1.0"); @@ -239,17 +172,17 @@ class MeasFilterHandlerTest { return filter; } - static List<Event> getValidMeas() throws IOException { - final Path metadata = Paths.get("src/test/resources/valid_metadata.json"); - List<Event> events = EventUtils - .eventsFromDirectory(Paths.get(dataDirectory.toString() + "/valid_data/"), metadata) - .stream() - .map(e -> { - MeasCollecFile m = converter.convert(e.getBody()); - e.setMeasCollecFile(m); - return e; - }) - .collect(Collectors.toList()); - return events; + private static List<Arguments> getEvents() { + ArgumentCreator creator = (Path path, EventMetadata metadata) -> { + Path expectedEventPath = Paths.get(path.toString()+"/expected.xml"); + Path testEventPath = Paths.get(path.toString()+"/test.xml"); + Event expectedEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(expectedEventPath), metadata); + Event testEvent = EventUtils.makeMockEvent(EventUtils.fileContentsToString(testEventPath), metadata); + testEvent.setFilter(generateValidFilter()); + return Arguments.of(expectedEvent, testEvent); + }; + return EventUtils.generateEventArguments(FILTER_DIRECTORY, "/nr", creator); + } + } |