summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authordfarrelly <david.farrelly@est.tech>2019-03-13 12:02:20 +0000
committerdfarrelly <david.farrelly@est.tech>2019-03-13 12:02:20 +0000
commit88adbc830c24f309c19fc5874654cc1cfaebc600 (patch)
tree65b268c6612c20cd64ac07559b811eb8ee7c1c64 /src/test
parent1f982f9e7f9f38743bbc1bcf2609292579762341 (diff)
Add metadata filtering
Issue-ID: DCAEGEN2-1286 Change-Id: Icfee7f24cb97b429e8b0db2d67da2f21e413cea0 Signed-off-by: dfarrelly <david.farrelly@est.tech>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MetadataFilterTest.java119
-rw-r--r--src/test/resources/incorrect_metadata.json12
-rw-r--r--src/test/resources/multiple_filter_mapper_config.json34
-rw-r--r--src/test/resources/no_filter_mapper_config.json34
-rw-r--r--src/test/resources/valid_mapper_config.json2
-rw-r--r--src/test/resources/valid_metadata.json3
6 files changed, 202 insertions, 2 deletions
diff --git a/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MetadataFilterTest.java b/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MetadataFilterTest.java
new file mode 100644
index 0000000..47c187a
--- /dev/null
+++ b/src/test/java/org/onap/dcaegen2/services/pmmapper/filtering/MetadataFilterTest.java
@@ -0,0 +1,119 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcaegen2.services.pmmapper.filtering;
+
+import com.google.gson.Gson;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.onap.dcaegen2.services.pmmapper.model.Event;
+import org.onap.dcaegen2.services.pmmapper.model.MapperConfig;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import utils.EventUtils;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@ExtendWith(MockitoExtension.class)
+@PrepareForTest(MapperConfig.class)
+public class MetadataFilterTest {
+
+ private MetadataFilter metadataFilter;
+
+ private static MapperConfig validConfig;
+ private static MapperConfig noFilterConfig;
+ private static MapperConfig multipleFilterConfig;
+
+ private static String validConfigFileContents;
+ private static String noFilterConfigFileContents;
+ private static String multipleFilterConfigFileContents;
+
+ private static final Path validMetadata = Paths.get("src/test/resources/valid_metadata.json");
+ private static final Path incorrectMetadata = Paths.get("src/test/resources/incorrect_metadata.json");
+
+ private static final Path validConfigPath = Paths.get("src/test/resources/valid_mapper_config.json");
+ private static final Path noFilterConfigPath = Paths.get("src/test/resources/no_filter_mapper_config.json");
+ private static final Path multipleFilterConfigPath = Paths.get("src/test/resources/multiple_filter_mapper_config.json");
+
+ private static final Path dataDirectory = Paths.get("src/test/resources/xml_validator_test/test_data/");
+
+
+ @BeforeEach
+ void setup() throws Exception {
+ validConfigFileContents = new String(Files.readAllBytes(validConfigPath));
+ noFilterConfigFileContents = new String(Files.readAllBytes(noFilterConfigPath));
+ multipleFilterConfigFileContents = new String(Files.readAllBytes(multipleFilterConfigPath));
+
+ validConfig = new Gson().fromJson(validConfigFileContents, MapperConfig.class);
+ noFilterConfig = new Gson().fromJson(noFilterConfigFileContents, MapperConfig.class);
+ multipleFilterConfig = new Gson().fromJson(multipleFilterConfigFileContents, MapperConfig.class);
+
+
+ metadataFilter = new MetadataFilter(this.validConfig);
+ }
+
+
+ @ParameterizedTest
+ @MethodSource("getEventsWithValidMetadata")
+ void testValidMetadataPass(Event testEvent) {
+ assertTrue(metadataFilter.filter(testEvent));
+ }
+
+ @ParameterizedTest
+ @MethodSource("getEventsWithValidMetadata")
+ void testEmptyFilterPass(Event testEvent) {
+ metadataFilter.config = noFilterConfig;
+ assertTrue(metadataFilter.filter(testEvent));
+ }
+
+ @ParameterizedTest
+ @MethodSource("getEventsWithValidMetadata")
+ void testMultipleFilterPass(Event testEvent) {
+ metadataFilter.config = multipleFilterConfig;
+ assertTrue(metadataFilter.filter(testEvent));
+ }
+
+ @ParameterizedTest
+ @MethodSource("getEventsWithInvalidMetadata")
+ void testInvalidMetadataFail(Event testEvent) {
+ assertFalse(metadataFilter.filter(testEvent));
+ }
+
+
+
+ private static List<Event> getEventsWithValidMetadata() throws IOException {
+ Path validDataDirectory = Paths.get(dataDirectory.toString() + "/valid/");
+ return EventUtils.eventsFromDirectory(validDataDirectory, validMetadata);
+ }
+
+ private static List<Event> getEventsWithInvalidMetadata() throws IOException {
+ Path validDataDirectory = Paths.get(dataDirectory.toString() + "/valid/");
+ return EventUtils.eventsFromDirectory(validDataDirectory, incorrectMetadata);
+ }
+} \ No newline at end of file
diff --git a/src/test/resources/incorrect_metadata.json b/src/test/resources/incorrect_metadata.json
new file mode 100644
index 0000000..e61e94f
--- /dev/null
+++ b/src/test/resources/incorrect_metadata.json
@@ -0,0 +1,12 @@
+{
+ "productName": "LTE",
+ "vendorName": "Ericsson",
+ "lastEpochMicrosec": "1538478000000",
+ "sourceName": "oteNB5309",
+ "startEpochMicrosec": "1538478900000",
+ "timeZoneOffset": "UTC+05.00",
+ "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
+ "compression": "gzip",
+ "fileFormatType": "org.3GPP.32.435#measCollec",
+ "fileFormatVersion": "V8"
+} \ No newline at end of file
diff --git a/src/test/resources/multiple_filter_mapper_config.json b/src/test/resources/multiple_filter_mapper_config.json
new file mode 100644
index 0000000..89bca57
--- /dev/null
+++ b/src/test/resources/multiple_filter_mapper_config.json
@@ -0,0 +1,34 @@
+{
+ "pm-mapper-filter": {"filters":[{"pmDefVsn": "V8","nfType": "LTE","vendor": "Ericsson","measTypes": [ "A", "B" ]},{"pmDefVsn": "V9","nfType": "NrRadio","vendor": "Ericsson","measTypes": [ "A", "B" ]}]},
+ "streams_subscribes": {
+ "dmaap_subscriber": {
+ "type": "data_router",
+ "aaf_username": null,
+ "aaf_password": null,
+ "dmaap_info": {
+ "location": "location",
+ "delivery_url": "delivery_url",
+ "username": "username",
+ "password": "password",
+ "subscriber_id": "subscriber_id"
+ }
+ }
+ },
+ "streams_publishes": {
+ "dmaap_publisher": {
+ "type": "message_router",
+ "aaf_password": null,
+ "dmaap_info": {
+ "topic_url": "https://message-router.onap.svc.cluster.local:3904/events/some-topic",
+ "client_role": null,
+ "location": null,
+ "client_id": null
+ },
+ "aaf_username": null
+ }
+ },
+ "dmaap_dr_feed_id": "2",
+ "buscontroller_feed_subscription_endpoint": "http://dmaap-bc.onap.svc.cluster.local:8080/webapi/dr_subs",
+ "dmaap_dr_delete_endpoint": "http://dmaap-dr-node.onap.svc.cluster.local:8443/delete",
+ "services_calls": {}
+} \ No newline at end of file
diff --git a/src/test/resources/no_filter_mapper_config.json b/src/test/resources/no_filter_mapper_config.json
new file mode 100644
index 0000000..3f855cf
--- /dev/null
+++ b/src/test/resources/no_filter_mapper_config.json
@@ -0,0 +1,34 @@
+{
+ "pm-mapper-filter": {"filters":[]},
+ "streams_subscribes": {
+ "dmaap_subscriber": {
+ "type": "data_router",
+ "aaf_username": null,
+ "aaf_password": null,
+ "dmaap_info": {
+ "location": "location",
+ "delivery_url": "delivery_url",
+ "username": "username",
+ "password": "password",
+ "subscriber_id": "subscriber_id"
+ }
+ }
+ },
+ "streams_publishes": {
+ "dmaap_publisher": {
+ "type": "message_router",
+ "aaf_password": null,
+ "dmaap_info": {
+ "topic_url": "https://message-router.onap.svc.cluster.local:3904/events/some-topic",
+ "client_role": null,
+ "location": null,
+ "client_id": null
+ },
+ "aaf_username": null
+ }
+ },
+ "dmaap_dr_feed_id": "2",
+ "buscontroller_feed_subscription_endpoint": "http://dmaap-bc.onap.svc.cluster.local:8080/webapi/dr_subs",
+ "dmaap_dr_delete_endpoint": "http://dmaap-dr-node.onap.svc.cluster.local:8443/delete",
+ "services_calls": {}
+} \ No newline at end of file
diff --git a/src/test/resources/valid_mapper_config.json b/src/test/resources/valid_mapper_config.json
index 6cd76bd..040406f 100644
--- a/src/test/resources/valid_mapper_config.json
+++ b/src/test/resources/valid_mapper_config.json
@@ -1,5 +1,5 @@
{
- "pm-mapper-filter": {"filters":[]},
+ "pm-mapper-filter": {"filters":[{"pmDefVsn": "V9","nfType": "NrRadio","vendor": "Ericsson","measTypes": [ "A", "B" ]}]},
"streams_subscribes": {
"dmaap_subscriber": {
"type": "data_router",
diff --git a/src/test/resources/valid_metadata.json b/src/test/resources/valid_metadata.json
index 21de3fb..cf21437 100644
--- a/src/test/resources/valid_metadata.json
+++ b/src/test/resources/valid_metadata.json
@@ -8,5 +8,6 @@
"location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz",
"compression": "gzip",
"fileFormatType": "org.3GPP.32.435#measCollec",
- "fileFormatVersion": "V9"
+ "fileFormatVersion": "V9",
+ "decompression_status": "false"
} \ No newline at end of file