diff options
author | 2020-07-15 13:26:51 +0200 | |
---|---|---|
committer | 2020-07-17 13:43:43 +0200 | |
commit | ba384eeb3cc007ff1d48db04fecc9356069456c5 (patch) | |
tree | cbb6695e1ca3ac80e31dc16fd05483fd10b3fa37 /src/test | |
parent | 977a518c680032572f6c5c59879ead71221e460a (diff) |
implement regex support in PM Mapper filtering mechanism
Issue-ID: DCAEGEN2-2347
Signed-off-by: marcinrzepeckiwroc <marcin.rzepecki@nokia.com>
Change-Id: I3fdbae33ae318800ccc2758a191604fe79c2aaf4
Diffstat (limited to 'src/test')
6 files changed, 225 insertions, 6 deletions
diff --git a/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java b/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java index ce051e4..0b8cdfc 100644 --- a/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java +++ b/src/test/java/org/onap/dcaegen2/services/pmmapper/AppTest.java @@ -33,13 +33,14 @@ import static org.mockserver.integration.ClientAndServer.startClientAndServer; import static org.mockserver.model.HttpResponse.response; import static utils.ConfigUtils.getMapperConfigFromFile; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Collections; import com.google.gson.Gson; import io.undertow.server.HttpServerExchange; @@ -261,7 +262,7 @@ class AppTest { @Test void testFilter_success() { Event mockEvent = Mockito.mock(Event.class); - List<Event> mockEvents = Arrays.asList(mockEvent); + List<Event> mockEvents = new LinkedList<>(Collections.singletonList(mockEvent)); MapperConfig mockConfig = Mockito.mock(MapperConfig.class); boolean result = App.filter(new MeasFilterHandler(new MeasConverter()), mockEvents, mockConfig); assertTrue(result); 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 0462616..3eea765 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 @@ -30,6 +30,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import org.junit.jupiter.api.BeforeEach; @@ -58,7 +59,7 @@ 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 MeasConverter converter = new MeasConverter(); + private static final MeasConverter converter = new MeasConverter(); private MeasFilterHandler objUnderTest; @Mock private HttpServerExchange exchange; @@ -101,10 +102,25 @@ class MeasFilterHandlerTest { } @Test + void remove_all_events_that_does_not_match_filter() { + String inputPath = baseDir + "lte/meas_type_and_r_manyinfo/test.xml"; + + Filter noMatchFilter = new MeasFilterConfig().new Filter(); + noMatchFilter.setMeasTypes(Arrays.asList("ad", "bs")); + Event eventNoMatch = generateEvent(inputPath, noMatchFilter); + + List<Event> events = new ArrayList<>(); + events.add(eventNoMatch); + events.add(eventNoMatch); + assertFalse(objUnderTest.filterByMeasType(events)); + assertEquals(0, events.size()); + } + + @Test void skip_mapping_when_MeasData_isEmpty() { String inputPath = baseDir + "lte/meas_results/test.xml"; Event event = generateEvent(inputPath, generateValidFilter()); - event.getMeasurement().replacementMeasurementData(Arrays.asList()); + event.getMeasurement().replacementMeasurementData(Collections.emptyList()); assertFalse(objUnderTest.filterByMeasType(event)); } @@ -114,7 +130,7 @@ class MeasFilterHandlerTest { String inputPath = baseDir + "lte/meas_results/test.xml"; Filter emptyMeastypesFilter = new MeasFilterConfig().new Filter(); - emptyMeastypesFilter.setMeasTypes(Arrays.asList()); + emptyMeastypesFilter.setMeasTypes(Collections.emptyList()); Event event = generateEvent(inputPath, emptyMeastypesFilter); MeasurementFile originalMeasCollec = event.getMeasurement(); @@ -148,6 +164,18 @@ class MeasFilterHandlerTest { }); } + @Test + void invalid_pattern_test() { + String inputPath = baseDir + "lte/meas_type_and_r_manyinfo/test.xml"; + Filter matchFilter = new MeasFilterConfig().new Filter(); + matchFilter.setMeasTypes(Arrays.asList("a", "b", "......****")); + Event eventMatch = generateEvent(inputPath, matchFilter); + List<Event> events = new ArrayList<>(); + events.add(eventMatch); + assertTrue(objUnderTest.filterByMeasType(events)); + assertEquals(1, events.size()); + } + @ParameterizedTest @MethodSource("getEvents") void filter_valid_measurements(Event expectedEvent, Event testEvent) { @@ -170,7 +198,7 @@ class MeasFilterHandlerTest { Filter filter; filter = new MeasFilterConfig().new Filter(); filter.setDictionaryVersion("1.0"); - filter.setMeasTypes(Arrays.asList("a", "b")); + filter.setMeasTypes(Arrays.asList("a", "b", "aab.*", ".*3", ".******test")); return filter; } diff --git a/src/test/resources/filter_test/lte/meas_results_manyinfo_regex/expected.xml b/src/test/resources/filter_test/lte/meas_results_manyinfo_regex/expected.xml new file mode 100644 index 0000000..d1044ad --- /dev/null +++ b/src/test/resources/filter_test/lte/meas_results_manyinfo_regex/expected.xml @@ -0,0 +1,42 @@ +<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"> + <fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix"> + <fileSender localDn="Dublin"/> + <measCollec beginTime="2018-10-02T12:00:00+01:00"/> + </fileHeader> + <measData> + <managedElement localDn="Dublin" swVersion="r0.1"/> + <measInfo measInfoId="this will be filtered out"> + <job jobId="jobId"/> + <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/> + <repPeriod duration="PT900S"/> + <measTypes>zz3</measTypes> + <measValue measObjLdn="objLdn"> + <measResults>27</measResults> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="some measInfoId"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measTypes>a b</measTypes> + <measValue measObjLdn="objLdn"> + <measResults>1 2</measResults> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="some measInfoId2"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measTypes>aab1 b</measTypes> + <measValue measObjLdn="objLdn"> + <measResults>1 2</measResults> + <suspect>false</suspect> + </measValue> + </measInfo> + </measData> + <fileFooter> + <measCollec endTime="2018-10-02T12:15:00+01:00"/> + </fileFooter> +</measCollecFile> diff --git a/src/test/resources/filter_test/lte/meas_results_manyinfo_regex/test.xml b/src/test/resources/filter_test/lte/meas_results_manyinfo_regex/test.xml new file mode 100644 index 0000000..890fee4 --- /dev/null +++ b/src/test/resources/filter_test/lte/meas_results_manyinfo_regex/test.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"> + <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd" + fileFormatVersion="32.435 V10.0"> + <fileSender localDn="Dublin"/> + <measCollec beginTime="2018-10-02T12:00:00+01:00"/> + </fileHeader> + <measData> + <managedElement swVersion="r0.1" localDn="Dublin"/> + <measInfo measInfoId="this will be filtered out"> + <job jobId="jobId"/> + <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/> + <repPeriod duration="PT900S"/> + <measTypes>z aa zz3 bb</measTypes> + <measValue measObjLdn="objLdn"> + <measResults>99 1 27 2</measResults> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="some measInfoId"> + <job jobId="jobId"/> + <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/> + <repPeriod duration="PT900S"/> + <measTypes>z a zz b</measTypes> + <measValue measObjLdn="objLdn"> + <measResults>99 1 27 2</measResults> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="some measInfoId2"> + <job jobId="jobId"/> + <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/> + <repPeriod duration="PT900S"/> + <measTypes>z aab1 zz b</measTypes> + <measValue measObjLdn="objLdn"> + <measResults>99 1 27 2</measResults> + <suspect>false</suspect> + </measValue> + </measInfo> + </measData> + <fileFooter> + <measCollec endTime="2018-10-02T12:15:00+01:00"/> + </fileFooter> +</measCollecFile> diff --git a/src/test/resources/filter_test/lte/meas_type_and_r_manyinfo_regex/expected.xml b/src/test/resources/filter_test/lte/meas_type_and_r_manyinfo_regex/expected.xml new file mode 100644 index 0000000..2a2a967 --- /dev/null +++ b/src/test/resources/filter_test/lte/meas_type_and_r_manyinfo_regex/expected.xml @@ -0,0 +1,48 @@ +<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"> + <fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix"> + <fileSender localDn="Dublin"/> + <measCollec beginTime="2018-10-02T12:00:00+01:00"/> + </fileHeader> + <measData> + <managedElement localDn="Dublin" swVersion="r0.1"/> + <measInfo measInfoId="some measInfoId"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measType p="1">aab1</measType> + <measType p="2">aab2</measType> + <measType p="4">b</measType> + <measValue measObjLdn="some measObjLdn"> + <r p="1">1</r> + <r p="2">99</r> + <r p="4">2</r> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="filter will disregard this measInfo"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measType p="1">aab1</measType> + <measValue measObjLdn="some measObjLdn"> + <r p="1">1</r> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="some measInfoId2"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measType p="1">aab1</measType> + <measType p="3">bb3</measType> + <measValue measObjLdn="some measObjLdn"> + <r p="1">1</r> + <r p="3">2</r> + <suspect>false</suspect> + </measValue> + </measInfo> + </measData> + <fileFooter> + <measCollec endTime="2018-10-02T12:15:00+01:00"/> + </fileFooter> +</measCollecFile> diff --git a/src/test/resources/filter_test/lte/meas_type_and_r_manyinfo_regex/test.xml b/src/test/resources/filter_test/lte/meas_type_and_r_manyinfo_regex/test.xml new file mode 100644 index 0000000..9aa668e --- /dev/null +++ b/src/test/resources/filter_test/lte/meas_type_and_r_manyinfo_regex/test.xml @@ -0,0 +1,56 @@ +<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"> + <fileHeader fileFormatVersion="32.435 V10.0" vendorName="FooBar Ltd" dnPrefix="some dnPrefix"> + <fileSender localDn="Dublin"/> + <measCollec beginTime="2018-10-02T12:00:00+01:00"/> + </fileHeader> + <measData> + <managedElement localDn="Dublin" swVersion="r0.1"/> + <measInfo measInfoId="some measInfoId"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measType p="1">aab1</measType> + <measType p="2">aab2</measType> + <measType p="3">z</measType> + <measType p="4">b</measType> + <measValue measObjLdn="some measObjLdn"> + <r p="1">1</r> + <r p="2">99</r> + <r p="3">3</r> + <r p="4">2</r> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="filter will disregard this measInfo"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measType p="1">aab1</measType> + <measType p="2">z</measType> + <measType p="3">bb</measType> + <measValue measObjLdn="some measObjLdn"> + <r p="1">1</r> + <r p="2">99</r> + <r p="3">2</r> + <suspect>false</suspect> + </measValue> + </measInfo> + <measInfo measInfoId="some measInfoId2"> + <job jobId="jobId"/> + <granPeriod duration="PT900S" endTime="2018-10-02T12:15:00Z"/> + <repPeriod duration="PT900S"/> + <measType p="1">aab1</measType> + <measType p="2">z</measType> + <measType p="3">bb3</measType> + <measValue measObjLdn="some measObjLdn"> + <r p="1">1</r> + <r p="2">99</r> + <r p="3">2</r> + <suspect>false</suspect> + </measValue> + </measInfo> + </measData> + <fileFooter> + <measCollec endTime="2018-10-02T12:15:00+01:00"/> + </fileFooter> +</measCollecFile> |