summaryrefslogtreecommitdiffstats
path: root/src/test/java/utils
diff options
context:
space:
mode:
authorJoeOLeary <joseph.o.leary@est.tech>2020-01-14 10:54:59 +0000
committerJoeOLeary <joseph.o.leary@est.tech>2020-01-21 13:50:18 +0000
commit255235644c8c302e1e92c41c13be3f3ad5973b16 (patch)
tree762a609b5f4f0f55c6245a7f6bd91111656e0efb /src/test/java/utils
parenta6e22b38d721fabeee786be9914a9a80da1ceb86 (diff)
Add support for TS 28.550/28.532
Issue-ID: DCAEGEN2-1912 Change-Id: If05c3673a240e6ea5e3d1caca3ff5bf5828590d3 Signed-off-by: JoeOLeary <joseph.o.leary@est.tech>
Diffstat (limited to 'src/test/java/utils')
-rw-r--r--src/test/java/utils/ArgumentCreator.java36
-rw-r--r--src/test/java/utils/EventUtils.java45
2 files changed, 76 insertions, 5 deletions
diff --git a/src/test/java/utils/ArgumentCreator.java b/src/test/java/utils/ArgumentCreator.java
new file mode 100644
index 0000000..a552a0c
--- /dev/null
+++ b/src/test/java/utils/ArgumentCreator.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * 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.
+ * 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 utils;
+
+import java.nio.file.Path;
+import org.junit.jupiter.params.provider.Arguments;
+import org.onap.dcaegen2.services.pmmapper.model.EventMetadata;
+
+public interface ArgumentCreator {
+
+ /**
+ * Makes an Argument containing an event from an path to an XML body and a corresponding metadata object.
+ * @param path path to file containing xml.
+ * @param metadata instance of a metadata object with fileFormatType set.
+ * @return Arguments containing what is necessary for a test to complete its checks.
+ */
+ public Arguments makeArgument(Path path, EventMetadata metadata);
+}
diff --git a/src/test/java/utils/EventUtils.java b/src/test/java/utils/EventUtils.java
index 0051629..ffa02b0 100644
--- a/src/test/java/utils/EventUtils.java
+++ b/src/test/java/utils/EventUtils.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.
@@ -29,13 +29,17 @@ import io.undertow.server.HttpServerExchange;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import junit.framework.TestCase;
+import org.junit.jupiter.params.provider.Arguments;
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.utils.MeasConverter;
public class EventUtils {
@@ -55,6 +59,27 @@ public class EventUtils {
.map(contents -> EventUtils.makeMockEvent(contents, eventMetadata))
.collect(Collectors.toList());
}
+ /**
+ * Create a List of Arguments containing an Event (Defaults to LTE events), and an expected outcome.
+ * Fails test in the event of failure to read a file.
+ * @param baseDirectory Directory containing multiple formats of events separated by a directory.
+ * @param nrQualifier String representing a unique part of the path that will exist only in the NR path.
+ * @param argCreator Callback to method that will generate the appropriate set of arguments for each test.
+ */
+ public static List<Arguments> generateEventArguments(Path baseDirectory, String nrQualifier, ArgumentCreator argCreator ) {
+ List<Arguments> events = new ArrayList<>();
+ try (Stream<Path> paths = Files.list(baseDirectory)) {
+ paths.filter(Files::isDirectory).forEach(path -> {
+ String fileFormatType = path.toString().contains(nrQualifier) ? MeasConverter.NR_FILE_TYPE : MeasConverter.LTE_FILE_TYPE;
+ EventMetadata eventMetadata = new EventMetadata();
+ eventMetadata.setFileFormatType(fileFormatType);
+ events.addAll(getEventsArgument(path, eventMetadata, argCreator));
+ });
+ } catch (IOException e) {
+ TestCase.fail("IOException occurred while generating test data");
+ }
+ return events;
+ }
/**
* reads contents of file into a string.
@@ -75,15 +100,14 @@ public class EventUtils {
* Makes an event with a mock http server exchange, empty mdc and publish identity
* @param body body for the event.
* @param eventMetadata metadata for the event.
- * @return event with mock HttpServerExchange
+ * @return event with mock HttpServerExchange.
*/
public static Event makeMockEvent(String body, EventMetadata eventMetadata) {
Event event = new Event(mock(HttpServerExchange.class, RETURNS_DEEP_STUBS), body, eventMetadata, new HashMap<>(), "");
- event.setMeasCollecFile(new MeasCollecFile());
+ event.setMeasurement(new MeasConverter().convert(event));
return event;
}
-
/**
* Makes an event with a mock http server exchange and empty mdc
* @param body body for the event.
@@ -95,5 +119,16 @@ public class EventUtils {
return new Event(mockHttpServerExchange, body, eventMetadata, new HashMap<>(), publishIdentity);
}
+ private static List<Arguments> getEventsArgument(Path basePath, EventMetadata metadata, ArgumentCreator argCreator) {
+ List<Arguments> events = new ArrayList<>();
+ try (Stream<Path> paths = Files.list(basePath)) {
+ paths.filter(Files::isDirectory).forEach(path->{
+ events.add(argCreator.makeArgument(path, metadata));
+ });
+ } catch (IOException e) {
+ TestCase.fail("IOException occurred while generating test data");
+ }
+ return events;
+ }
}