From 255235644c8c302e1e92c41c13be3f3ad5973b16 Mon Sep 17 00:00:00 2001 From: JoeOLeary Date: Tue, 14 Jan 2020 10:54:59 +0000 Subject: Add support for TS 28.550/28.532 Issue-ID: DCAEGEN2-1912 Change-Id: If05c3673a240e6ea5e3d1caca3ff5bf5828590d3 Signed-off-by: JoeOLeary --- src/test/java/utils/ArgumentCreator.java | 36 +++++++++++++++++++++++++ src/test/java/utils/EventUtils.java | 45 ++++++++++++++++++++++++++++---- 2 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 src/test/java/utils/ArgumentCreator.java (limited to 'src/test/java/utils') 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 generateEventArguments(Path baseDirectory, String nrQualifier, ArgumentCreator argCreator ) { + List events = new ArrayList<>(); + try (Stream 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 getEventsArgument(Path basePath, EventMetadata metadata, ArgumentCreator argCreator) { + List events = new ArrayList<>(); + try (Stream 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; + } } -- cgit 1.2.3-korg