resolverFunction) {
+ this.resolverFunction = resolverFunction;
+ }
+
+ /*
+ * this method gets called from PipelineTestHelper
+ *
+ * it takes in a protobuf message field, the field value and the pipeline input
+ * builder
+ *
+ * it determines the type of the field, either message -> normal pipeline,
+ * dimensionPipelineInput -> dimension pipeline, or primative.
+ *
+ * for primative values, it merely copies the value as is to the builder via the
+ * set field
+ *
+ * for normal pipelines and dimension pipelines, it calls the respective methods
+ */
+ public void resolvePipelineInput(FieldDescriptor PLIField, Object PLIValue, Message.Builder resolvedPLIBuilder) {
+ resolvedPLIBuilder.setField(PLIField, resolveField(PLIField, PLIValue));
+ }
+
+ /*
+ * This mathod takes a protobuf message value
+ *
+ * It creates a new protobuf message builder for the message value
+ *
+ * for each field on the value:
+ *
+ * it checks if it is a repeated field or not
+ *
+ * if not, it sets the field to the value returned by resolveField
+ *
+ * if repeated, it adds the value returned by resolveField to the the field
+ *
+ * it returns the built protobuf message
+ */
+ private Message resolveFields(Message message) {
+
+ Message.Builder builder = message.newBuilderForType();
+
+ message.getAllFields().forEach((field, value) -> {
+ if (field.isRepeated()) {
+ int fieldCount = message.getRepeatedFieldCount(field);
+ for (int i = 0; i < fieldCount; i++) {
+ Object repeatedFieldValue = message.getRepeatedField(field, i);
+ builder.addRepeatedField(field, resolveField(field, repeatedFieldValue));
+ }
+ } else {
+ builder.setField(field, resolveField(field, value));
+ }
+ });
+
+ return builder.build();
+ }
+
+ /*
+ * Takes in a field descriptor and the field value
+ *
+ * it determines the type of the field.
+ *
+ * There are only 2 cases we care about:
+ *
+ * String, in which case we can safely assume that the field is a path field and needs to be resolved
+ *
+ * Message, in which case we then go through each field within the message and potentially resolve any fields within it, recurively
+ *
+ * returns the new value of the field
+ */
+ private Object resolveField(FieldDescriptor field, Object value) {
+ Object _value = value;
+
+ switch (field.getJavaType()) {
+ case STRING:
+ String path = (String) _value;
+ _value = this.resolverFunction.apply(path).toString();
+ break;
+ case MESSAGE:
+ Message fieldMessage = (Message) _value;
+ _value = resolveFields(fieldMessage);
+ break;
+ default:
+ break;
+ }
+ return _value;
+ }
+}
diff --git a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
new file mode 100644
index 0000000..4659654
--- /dev/null
+++ b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
@@ -0,0 +1,217 @@
+package gov.hhs.aspr.ms.gcm.pipeline.testsupport;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+import com.google.protobuf.Descriptors.FieldDescriptor;
+import com.google.protobuf.Message;
+import com.google.protobuf.util.JsonFormat;
+import com.google.protobuf.util.JsonFormat.Parser;
+
+import gov.hhs.aspr.ms.taskit.core.TranslationController;
+import gov.hhs.aspr.ms.taskit.core.TranslationEngine;
+import gov.hhs.aspr.ms.taskit.core.TranslationEngineType;
+import gov.hhs.aspr.ms.taskit.protobuf.ProtobufTranslationEngine;
+
+/**
+ * Test support class for testing pipelines.
+ *
+ * This test is only to be used if you are using protobuf to load and parse your
+ * pipeline input file. This is highly advised and if you aren't doing so, it is
+ * a good time to ask yourself why you are not.
+ *
+ * The param for this class is the type for your pipeline input class. Again, it
+ * assumes you are using protobuf and thus this type must be an extension of the
+ * {@link Message} type.
+ *
+ * Provides utility methods for loading unresolved pipeline input files,
+ * resolving pipeline input files, creating resolved pipeline input files on
+ * disk and comparing 2 output files.
+ *
+ * @param the type for your pipeline input class
+ */
+public class PipelineTestSupport {
+
+ private final TranslationEngine translationEngine;
+ private final Class pipelineInputClassRef;
+ private final T pipelineInputInstance;
+ private final PipelineInputResolver pipelineInputResolver;
+ private final Function resolverFunction;
+ // private final String testOutputDir;
+
+ /**
+ * Creates a PipelineTestSupport class
+ *
+ * Takes a translation engine builder that should contain a translation engine
+ * with any and all translation specs needed to validate any and all java types
+ * used in the pipeline tests.
+ *
+ * Takes a default instance of the given pipeline input type.
+ *
+ * Takes a class reference of the given pipeline input type.
+ *
+ * Takes a resolver function that will be used to resolve the paths in the file
+ * to the equivalent absolute paths.
+ *
+ * Takes in a string for the test output directory so that it can be created for
+ * you when getting a resolved pipeline input.
+ *
+ * @param translationEngineBuilder
+ * @param pipelineInputInstance
+ * @param pipelineInputClassRef
+ * @param resolverFunction
+ * @param testOutputDir
+ *
+ */
+ public PipelineTestSupport(TranslationEngine translationEngine, T pipelineInputInstance,
+ Class pipelineInputClassRef, Function resolverFunction, Path testOutputDir) {
+ this.translationEngine = translationEngine;
+ this.pipelineInputInstance = pipelineInputInstance;
+ this.pipelineInputClassRef = pipelineInputClassRef;
+ this.pipelineInputResolver = new PipelineInputResolver(resolverFunction);
+ this.resolverFunction = resolverFunction;
+ // this.testOutputDir = testOutputDir;
+ }
+
+ /**
+ * Given a pipeline input and a file name, uses taskit to output the pipeline
+ * input to a file with the given name.
+ *
+ * uses a protobuf translation engine and the file will be writen in json
+ */
+ public String createResolvedPipelineInputFile(T input, String fileName) {
+ T.Builder builder = input.toBuilder();
+
+ Path resolvedPipelineInputPath = this.resolverFunction.apply(fileName);
+ TranslationController.builder()
+ .addTranslationEngine(ProtobufTranslationEngine.builder().build())
+ .build()
+ .writeOutput(builder.build(), resolvedPipelineInputPath, TranslationEngineType.PROTOBUF);
+
+ return resolvedPipelineInputPath.toString();
+ }
+
+ /**
+ * Given two class refs and 2 paths, read in each path using taskit and compare
+ * the resulting app object (APP_OBJ) classes for both object equals and string
+ * equals
+ *
+ * This test will fail if there isn't a properly implemented equals contract on
+ * the APP_OBJ
+ *
+ * This test will fail if there isn't a properly implemented toString on the
+ * APP_OBJ
+ *
+ * uses the translation engine provided to this class
+ */
+ public boolean filesAreSame(Class inputClassRef,
+ Class outputClassRef, Path pathOfExpectedOutput, Path pathOfActualOutput) {
+
+ TranslationController translationController = TranslationController.builder()
+ .addTranslationEngine(this.translationEngine)
+ .addInputFilePath(pathOfExpectedOutput, inputClassRef,
+ this.translationEngine.getTranslationEngineType())
+ .addInputFilePath(pathOfActualOutput, inputClassRef, this.translationEngine.getTranslationEngineType())
+ .build();
+
+ translationController.readInput();
+
+ List inputObjs = translationController.getObjects(outputClassRef);
+
+ APP_OBJ obj1 = inputObjs.get(0);
+ APP_OBJ obj2 = inputObjs.get(1);
+
+ return obj1.equals(obj2) && obj1.toString().equals(obj2.toString());
+ }
+
+ /**
+ * Given an unresolved pipeline input, creates a resolved pipeline input based
+ * on whether to use the directory input file or not, and whether to set
+ * runningWithPreviousData to true or not
+ *
+ * for the directory input file, it only resolves the input and output directory
+ * paths. Otherwise, it will call the PipelineInputResolver to resolve each and
+ * every path within the input
+ *
+ * then creates the Test output dir
+ *
+ * ---------------------
+ *
+ * For the input and out directory, the variable names MUST BE: 'inputDirectory'
+ * and 'outputDirectory' otherwise they will not be resolved.
+ *
+ * For the setPrev option, it will set the value of 'runningWithPreviousData' to
+ * true if set. Note that the variable name MUST be 'runningWithPreviousData'
+ */
+ public T getResolvedPipelineInput(T unresolvedInput, boolean useDirectoryFile, boolean setPrev) {
+
+ T.Builder resolvedInputBuilder = unresolvedInput.toBuilder();
+
+ Map fields = resolvedInputBuilder.getAllFields();
+
+ if (!useDirectoryFile) {
+ fields.forEach((pipelineField, pipelineFieldValue) -> {
+ this.pipelineInputResolver.resolvePipelineInput(pipelineField, pipelineFieldValue,
+ resolvedInputBuilder);
+ });
+
+ if (setPrev) {
+ fields.forEach((pipelineField, pipelineFieldValue) -> {
+ if (pipelineField.getName().equals("runningWithPreviousData")) {
+ resolvedInputBuilder.setField(pipelineField, setPrev);
+
+ return;
+ }
+ });
+ }
+ } else {
+ fields.forEach((pipelineField, pipelineFieldValue) -> {
+ if (pipelineField.getName().equals("inputDirectory")
+ || pipelineField.getName().equals("outputDirectory")) {
+ this.pipelineInputResolver.resolvePipelineInput(pipelineField, pipelineFieldValue,
+ resolvedInputBuilder);
+ }
+ });
+ }
+
+ // make outputDir
+ // need to update to util 4.2.0-snapshot
+ // ResourceHelper.makeOutputDir(testOutputDir);
+
+ return this.pipelineInputClassRef.cast(resolvedInputBuilder.build());
+ }
+
+ /**
+ * given a filename, attempts to load the file using protobuf
+ *
+ * file must be of the type assigned to this class and is not allowed to have
+ * any missing/omitted fields that are not labeled optional.
+ */
+ public T getUnresolvedPipelineInput(String inputFileName) {
+ Path pipelineInputPath = this.resolverFunction.apply(inputFileName);
+
+ if (!Files.exists(pipelineInputPath)) {
+ throw new RuntimeException(
+ "Provided path does not exist: " + pipelineInputPath.toAbsolutePath().toString());
+ }
+
+ Parser jsonParser = JsonFormat.parser();
+
+ T.Builder builder = this.pipelineInputInstance.newBuilderForType();
+
+ try {
+ Reader reader = new FileReader(pipelineInputPath.toFile());
+ jsonParser.merge(reader, builder);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ return this.pipelineInputClassRef.cast(builder.build());
+ }
+}
diff --git a/src/main/proto/gov/hhs/aspr/ms/gcm/pipeline/testsupport.proto b/src/main/proto/gov/hhs/aspr/ms/gcm/pipeline/testsupport.proto
new file mode 100644
index 0000000..dc7d3fe
--- /dev/null
+++ b/src/main/proto/gov/hhs/aspr/ms/gcm/pipeline/testsupport.proto
@@ -0,0 +1,40 @@
+syntax = "proto3";
+package gov.hhs.aspr.ms.gcm.pipeline;
+
+option java_multiple_files = true;
+option java_package = "gov.hhs.aspr.ms.gcm.pipeline.testsupport.input";
+
+message TestPipelineInput {
+ TestSubPipelineInput testPipelineInput = 1;
+ TestDimensionPipelineInput testDimensionPipelineInput = 2;
+ optional bool runningWithPreviousData = 3;
+ optional string inputDirectory = 4;
+ optional string outputDirectory = 5;
+}
+
+message TestSubPipelineInput {
+ string testDataFile1 = 1;
+ string testDataFile2 = 2;
+ string testDataFile3 = 3;
+ string testDataFile4 = 4;
+ string pluginDataFile = 5;
+}
+
+message TestDimensionInstanceInput {
+ bool enabled = 1;
+ string inputFile = 2;
+ string dimensionDataFile = 3;
+}
+
+message TestMultiDimensionPipelineInput {
+ repeated TestDimensionInstanceInput dimensionInstanceInput = 1;
+}
+
+message TestSingleDimensionPipelineInput {
+ TestDimensionInstanceInput dimensionInstanceInput = 1;
+}
+
+message TestDimensionPipelineInput {
+ TestMultiDimensionPipelineInput testMultiDimensionPipelineInput = 1;
+ TestSingleDimensionPipelineInput testSingleDimensionPipelineInput = 2;
+}
\ No newline at end of file
diff --git a/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/AT_PipelineInputResolver.java b/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/AT_PipelineInputResolver.java
new file mode 100644
index 0000000..d54c0db
--- /dev/null
+++ b/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/AT_PipelineInputResolver.java
@@ -0,0 +1,130 @@
+package gov.hhs.aspr.ms.gcm.pipeline.testsupport;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.nio.file.Path;
+import java.util.Map;
+
+import org.junit.jupiter.api.Test;
+
+import com.google.protobuf.Descriptors.FieldDescriptor;
+import com.google.protobuf.Message;
+
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestDimensionInstanceInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestDimensionPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestMultiDimensionPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestSingleDimensionPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestSubPipelineInput;
+import gov.hhs.aspr.ms.taskit.protobuf.ProtobufTranslationEngine;
+import gov.hhs.aspr.ms.util.annotations.UnitTestMethod;
+import gov.hhs.aspr.ms.util.resourcehelper.ResourceHelper;
+
+public class AT_PipelineInputResolver {
+ private final Path REOURCE_DIR = ResourceHelper.getResourceDir(AT_PipelineInputResolver.class);
+ private final String TEST_OUTPUT_DIR_NAME = "testOutput";
+ private final Path TEST_OUTPUT_DIR = getResolvedResourcePath(TEST_OUTPUT_DIR_NAME);
+ private final String TEST_FILE_NAME = "pipeline_tester.json";
+
+ private final Path getResolvedResourcePath(String path) {
+ return REOURCE_DIR.resolve(path).toAbsolutePath();
+ }
+
+ @Test
+ @UnitTestMethod(target = PipelineInputResolver.class, name = "resolvePipelineInput", args = { FieldDescriptor.class,
+ Object.class, Message.Builder.class })
+ public void testResolvePipelineInput() {
+ PipelineTestSupport testPipelineInputTestSupport = new PipelineTestSupport<>(
+ ProtobufTranslationEngine.builder().build(), TestPipelineInput.getDefaultInstance(),
+ TestPipelineInput.class,
+ this::getResolvedResourcePath,
+ TEST_OUTPUT_DIR);
+
+ PipelineInputResolver pipelineInputResolver = new PipelineInputResolver(
+ this::getResolvedResourcePath);
+
+ TestPipelineInput unresolvedTestPipelineInput = testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_NAME);
+
+ TestPipelineInput.Builder resolvedInputBuilder = unresolvedTestPipelineInput.toBuilder();
+ Map fields = resolvedInputBuilder.getAllFields();
+
+ fields.forEach((pipelineField, pipelineFieldValue) -> {
+ pipelineInputResolver.resolvePipelineInput(pipelineField, pipelineFieldValue,
+ resolvedInputBuilder);
+ });
+
+ TestPipelineInput resolvedPipelineInput = resolvedInputBuilder.build();
+
+ TestSubPipelineInput testResolvedSubPipelineInput = resolvedPipelineInput.getTestPipelineInput();
+ TestDimensionPipelineInput testResolvedDimensionPipelineInput = resolvedPipelineInput
+ .getTestDimensionPipelineInput();
+
+ TestSingleDimensionPipelineInput testResolvedSingleDimensionPipelineInput = testResolvedDimensionPipelineInput
+ .getTestSingleDimensionPipelineInput();
+ TestMultiDimensionPipelineInput testResolvedMultiDimensionPipelineInput = testResolvedDimensionPipelineInput
+ .getTestMultiDimensionPipelineInput();
+
+ TestSubPipelineInput testUnresolvedSubPipelineInput = unresolvedTestPipelineInput
+ .getTestPipelineInput();
+ TestDimensionPipelineInput testUnresolvedDimensionPipelineInput = unresolvedTestPipelineInput
+ .getTestDimensionPipelineInput();
+
+ TestSingleDimensionPipelineInput testUnresolvedSingleDimensionPipelineInput = testUnresolvedDimensionPipelineInput
+ .getTestSingleDimensionPipelineInput();
+ TestMultiDimensionPipelineInput testUnresolvedMultiDimensionPipelineInput = testUnresolvedDimensionPipelineInput
+ .getTestMultiDimensionPipelineInput();
+
+ Path testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile1());
+ Path expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile1());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile2());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile2());
+ assertTrue(testPath.isAbsolute());
+
+ testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile3());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile3());
+ assertTrue(testPath.isAbsolute());
+
+ testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile4());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile4());
+ assertTrue(testPath.isAbsolute());
+
+ testPath = Path.of(testResolvedSubPipelineInput.getPluginDataFile());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getPluginDataFile());
+ assertTrue(testPath.isAbsolute());
+
+ testPath = Path.of(testResolvedSingleDimensionPipelineInput.getDimensionInstanceInput().getInputFile());
+ expectedPath = getResolvedResourcePath(
+ testUnresolvedSingleDimensionPipelineInput.getDimensionInstanceInput().getInputFile());
+ assertTrue(testPath.isAbsolute());
+
+ testPath = Path.of(testResolvedSingleDimensionPipelineInput.getDimensionInstanceInput()
+ .getDimensionDataFile());
+ expectedPath = getResolvedResourcePath(
+ testUnresolvedSingleDimensionPipelineInput.getDimensionInstanceInput()
+ .getDimensionDataFile());
+ assertTrue(testPath.isAbsolute());
+
+ assertEquals(testUnresolvedMultiDimensionPipelineInput.getDimensionInstanceInputCount(),
+ testResolvedMultiDimensionPipelineInput.getDimensionInstanceInputCount());
+
+ for (int i = 0; i < testResolvedMultiDimensionPipelineInput.getDimensionInstanceInputCount(); i++) {
+ TestDimensionInstanceInput unresolvedDimInstance = testUnresolvedMultiDimensionPipelineInput
+ .getDimensionInstanceInput(i);
+ TestDimensionInstanceInput resolvedDimInstance = testResolvedMultiDimensionPipelineInput
+ .getDimensionInstanceInput(i);
+
+ testPath = Path.of(resolvedDimInstance.getInputFile());
+ expectedPath = getResolvedResourcePath(unresolvedDimInstance.getInputFile());
+ assertTrue(testPath.isAbsolute());
+
+ testPath = Path.of(resolvedDimInstance.getDimensionDataFile());
+ expectedPath = getResolvedResourcePath(unresolvedDimInstance.getDimensionDataFile());
+ assertTrue(testPath.isAbsolute());
+ }
+ }
+}
diff --git a/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/AT_PipelineTestSupport.java b/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/AT_PipelineTestSupport.java
new file mode 100644
index 0000000..e1a08fa
--- /dev/null
+++ b/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/AT_PipelineTestSupport.java
@@ -0,0 +1,310 @@
+package gov.hhs.aspr.ms.gcm.pipeline.testsupport;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.nio.file.Path;
+import java.util.function.Function;
+
+import org.junit.jupiter.api.Test;
+
+import com.google.protobuf.InvalidProtocolBufferException;
+import com.google.protobuf.Message;
+
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestDimensionInstanceInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestDimensionPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestMultiDimensionPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestSingleDimensionPipelineInput;
+import gov.hhs.aspr.ms.gcm.pipeline.testsupport.input.TestSubPipelineInput;
+import gov.hhs.aspr.ms.gcm.simulation.plugins.globalproperties.datamanagers.GlobalPropertiesPluginData;
+import gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.globalproperties.GlobalPropertiesTranslator;
+import gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.globalproperties.data.input.GlobalPropertiesPluginDataInput;
+import gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.properties.PropertiesTranslator;
+import gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.reports.ReportsTranslator;
+import gov.hhs.aspr.ms.taskit.core.TranslationEngine;
+import gov.hhs.aspr.ms.taskit.protobuf.ProtobufTranslationEngine;
+import gov.hhs.aspr.ms.util.annotations.UnitTestConstructor;
+import gov.hhs.aspr.ms.util.annotations.UnitTestMethod;
+import gov.hhs.aspr.ms.util.resourcehelper.ResourceHelper;
+
+public class AT_PipelineTestSupport {
+ private final Path REOURCE_DIR = ResourceHelper.getResourceDir(this.getClass());
+ private final String TEST_OUTPUT_DIR_NAME = "testOutput";
+ private final Path TEST_OUTPUT_DIR = getResolvedResourcePath(TEST_OUTPUT_DIR_NAME);
+ private final String TEST_FILE_NAME = "pipeline_tester.json";
+ private final String TEST_FILE_DIR_NAME = "pipeline_tester_dir.json";
+ private final String TEST_FILE_PREV_NAME = "pipeline_tester_prev.json";
+ private final String TEST_FILE_BAD_NAME = "pipeline_tester_bad.json";
+ private final String TEST_FILE_NAME_RESOLVED = "pipeline_tester_resolved.json";
+
+ private final String TEST_GP_FILE_1 = "globalPropertiesPluginData1.json";
+ private final String TEST_GP_FILE_2 = "globalPropertiesPluginData2.json";
+ private final String TEST_GP_FILE_3 = "globalPropertiesPluginData3.json";
+ private final String TEST_GP_FILE_4 = "globalPropertiesPluginData4.json";
+
+ private final Path TEST_GP_FILE_1_PATH = getResolvedResourcePath(TEST_GP_FILE_1);
+ private final Path TEST_GP_FILE_2_PATH = getResolvedResourcePath(TEST_GP_FILE_2);
+ private final Path TEST_GP_FILE_3_PATH = getResolvedResourcePath(TEST_GP_FILE_3);
+ private final Path TEST_GP_FILE_4_PATH = getResolvedResourcePath(TEST_GP_FILE_4);
+
+ private final Path getResolvedResourcePath(String path) {
+ return REOURCE_DIR.resolve(path).toAbsolutePath();
+ }
+
+ @Test
+ @UnitTestConstructor(target = PipelineTestSupport.class, args = { TranslationEngine.class, Message.class,
+ Class.class, Function.class, Path.class })
+ public void testConstructor() {
+ PipelineTestSupport testPipelineInputTestSupport = new PipelineTestSupport<>(
+ ProtobufTranslationEngine.builder().build(), TestPipelineInput.getDefaultInstance(),
+ TestPipelineInput.class,
+ this::getResolvedResourcePath,
+ TEST_OUTPUT_DIR);
+
+ assertNotNull(testPipelineInputTestSupport);
+ }
+
+ @Test
+ @UnitTestMethod(target = PipelineTestSupport.class, name = "createResolvedPipelineInputFile", args = {
+ Message.class,
+ String.class })
+ public void testCreateResolvedPipelineInputFile() {
+ PipelineTestSupport testPipelineInputTestSupport = new PipelineTestSupport<>(
+ ProtobufTranslationEngine.builder().build(), TestPipelineInput.getDefaultInstance(),
+ TestPipelineInput.class,
+ this::getResolvedResourcePath,
+ TEST_OUTPUT_DIR);
+
+ TestPipelineInput testPipelineInput = testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_NAME);
+ TestPipelineInput resolvedPipelineInput = testPipelineInputTestSupport
+ .getResolvedPipelineInput(testPipelineInput, false, false);
+
+ String filePath = testPipelineInputTestSupport.createResolvedPipelineInputFile(resolvedPipelineInput,
+ TEST_FILE_NAME_RESOLVED);
+
+ Path resolvedPath = Path.of(filePath);
+
+ assertTrue(resolvedPath.isAbsolute());
+ assertTrue(resolvedPath.toFile().exists());
+ }
+
+ @Test
+ @UnitTestMethod(target = PipelineTestSupport.class, name = "filesAreSame", args = { Class.class, Class.class,
+ Path.class, Path.class })
+ public void testFilesAreSame() {
+ PipelineTestSupport testPipelineInputTestSupport = new PipelineTestSupport<>(
+ ProtobufTranslationEngine.builder()
+ .addTranslator(GlobalPropertiesTranslator.getTranslator())
+ .addTranslator(PropertiesTranslator.getTranslator())
+ .addTranslator(ReportsTranslator.getTranslator())
+ .build(),
+ TestPipelineInput.getDefaultInstance(),
+ TestPipelineInput.class,
+ this::getResolvedResourcePath,
+ TEST_OUTPUT_DIR);
+
+ assertTrue(testPipelineInputTestSupport.filesAreSame(GlobalPropertiesPluginDataInput.class,
+ GlobalPropertiesPluginData.class, TEST_GP_FILE_1_PATH, TEST_GP_FILE_2_PATH));
+ assertFalse(testPipelineInputTestSupport.filesAreSame(GlobalPropertiesPluginDataInput.class,
+ GlobalPropertiesPluginData.class, TEST_GP_FILE_1_PATH, TEST_GP_FILE_3_PATH));
+ assertFalse(testPipelineInputTestSupport.filesAreSame(GlobalPropertiesPluginDataInput.class,
+ GlobalPropertiesPluginData.class, TEST_GP_FILE_2_PATH, TEST_GP_FILE_3_PATH));
+ assertFalse(testPipelineInputTestSupport.filesAreSame(GlobalPropertiesPluginDataInput.class,
+ GlobalPropertiesPluginData.class, TEST_GP_FILE_3_PATH, TEST_GP_FILE_4_PATH));
+ }
+
+ @Test
+ @UnitTestMethod(target = PipelineTestSupport.class, name = "getResolvedPipelineInput", args = { Message.class,
+ boolean.class,
+ boolean.class })
+ public void testGetResolvedPipelineInput() {
+ PipelineTestSupport testPipelineInputTestSupport = new PipelineTestSupport<>(
+ ProtobufTranslationEngine.builder().build(), TestPipelineInput.getDefaultInstance(),
+ TestPipelineInput.class,
+ this::getResolvedResourcePath,
+ TEST_OUTPUT_DIR);
+
+ TestPipelineInput unresolvedTestPipelineInput = testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_NAME);
+ TestPipelineInput resolvedPipelineInput = testPipelineInputTestSupport
+ .getResolvedPipelineInput(unresolvedTestPipelineInput, false, false);
+
+ TestSubPipelineInput testResolvedSubPipelineInput = resolvedPipelineInput.getTestPipelineInput();
+ TestDimensionPipelineInput testResolvedDimensionPipelineInput = resolvedPipelineInput
+ .getTestDimensionPipelineInput();
+
+ TestSingleDimensionPipelineInput testResolvedSingleDimensionPipelineInput = testResolvedDimensionPipelineInput
+ .getTestSingleDimensionPipelineInput();
+ TestMultiDimensionPipelineInput testResolvedMultiDimensionPipelineInput = testResolvedDimensionPipelineInput
+ .getTestMultiDimensionPipelineInput();
+
+ TestSubPipelineInput testUnresolvedSubPipelineInput = unresolvedTestPipelineInput
+ .getTestPipelineInput();
+ TestDimensionPipelineInput testUnresolvedDimensionPipelineInput = unresolvedTestPipelineInput
+ .getTestDimensionPipelineInput();
+
+ TestSingleDimensionPipelineInput testUnresolvedSingleDimensionPipelineInput = testUnresolvedDimensionPipelineInput
+ .getTestSingleDimensionPipelineInput();
+ TestMultiDimensionPipelineInput testUnresolvedMultiDimensionPipelineInput = testUnresolvedDimensionPipelineInput
+ .getTestMultiDimensionPipelineInput();
+
+ Path testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile1());
+ Path expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile1());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile2());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile2());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile3());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile3());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSubPipelineInput.getTestDataFile4());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getTestDataFile4());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSubPipelineInput.getPluginDataFile());
+ expectedPath = getResolvedResourcePath(testUnresolvedSubPipelineInput.getPluginDataFile());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSingleDimensionPipelineInput.getDimensionInstanceInput().getInputFile());
+ expectedPath = getResolvedResourcePath(
+ testUnresolvedSingleDimensionPipelineInput.getDimensionInstanceInput().getInputFile());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(testResolvedSingleDimensionPipelineInput.getDimensionInstanceInput()
+ .getDimensionDataFile());
+ expectedPath = getResolvedResourcePath(
+ testUnresolvedSingleDimensionPipelineInput.getDimensionInstanceInput()
+ .getDimensionDataFile());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ assertEquals(testUnresolvedMultiDimensionPipelineInput.getDimensionInstanceInputCount(),
+ testResolvedMultiDimensionPipelineInput.getDimensionInstanceInputCount());
+
+ for (int i = 0; i < testResolvedMultiDimensionPipelineInput.getDimensionInstanceInputCount(); i++) {
+ TestDimensionInstanceInput unresolvedDimInstance = testUnresolvedMultiDimensionPipelineInput
+ .getDimensionInstanceInput(i);
+ TestDimensionInstanceInput resolvedDimInstance = testResolvedMultiDimensionPipelineInput
+ .getDimensionInstanceInput(i);
+
+ testPath = Path.of(resolvedDimInstance.getInputFile());
+ expectedPath = getResolvedResourcePath(unresolvedDimInstance.getInputFile());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(resolvedDimInstance.getDimensionDataFile());
+ expectedPath = getResolvedResourcePath(unresolvedDimInstance.getDimensionDataFile());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+ }
+
+ unresolvedTestPipelineInput = testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_DIR_NAME);
+ resolvedPipelineInput = testPipelineInputTestSupport
+ .getResolvedPipelineInput(unresolvedTestPipelineInput, true, false);
+
+ testPath = Path.of(resolvedPipelineInput.getInputDirectory());
+ expectedPath = getResolvedResourcePath(unresolvedTestPipelineInput.getInputDirectory());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ testPath = Path.of(resolvedPipelineInput.getOutputDirectory());
+ expectedPath = getResolvedResourcePath(unresolvedTestPipelineInput.getOutputDirectory());
+ assertTrue(testPath.isAbsolute());
+ assertEquals(expectedPath, testPath);
+
+ unresolvedTestPipelineInput = testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_PREV_NAME);
+ resolvedPipelineInput = testPipelineInputTestSupport
+ .getResolvedPipelineInput(unresolvedTestPipelineInput, false, true);
+
+ assertTrue(resolvedPipelineInput.getRunningWithPreviousData());
+ }
+
+ @Test
+ @UnitTestMethod(target = PipelineTestSupport.class, name = "getUnresolvedPipelineInput", args = {
+ String.class })
+ public void testGetUnresolvedPipelineInput() {
+ PipelineTestSupport testPipelineInputTestSupport = new PipelineTestSupport<>(
+ ProtobufTranslationEngine.builder().build(), TestPipelineInput.getDefaultInstance(),
+ TestPipelineInput.class,
+ this::getResolvedResourcePath,
+ TEST_OUTPUT_DIR);
+
+ TestPipelineInput testPipelineInput = testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_NAME);
+
+ TestSubPipelineInput testSubPipelineInput = testPipelineInput.getTestPipelineInput();
+ TestDimensionPipelineInput testDimensionPipelineInput = testPipelineInput
+ .getTestDimensionPipelineInput();
+
+ TestSingleDimensionPipelineInput testSingleDimensionPipelineInput = testDimensionPipelineInput
+ .getTestSingleDimensionPipelineInput();
+ TestMultiDimensionPipelineInput testMultiDimensionPipelineInput = testDimensionPipelineInput
+ .getTestMultiDimensionPipelineInput();
+
+ Path testPath = Path.of(testSubPipelineInput.getTestDataFile1());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testSubPipelineInput.getTestDataFile2());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testSubPipelineInput.getTestDataFile3());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testSubPipelineInput.getTestDataFile4());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testSubPipelineInput.getPluginDataFile());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testSingleDimensionPipelineInput.getDimensionInstanceInput().getInputFile());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testSingleDimensionPipelineInput.getDimensionInstanceInput().getDimensionDataFile());
+ assertNotNull(testPath);
+
+ for (TestDimensionInstanceInput testDimensionInstanceInput : testMultiDimensionPipelineInput
+ .getDimensionInstanceInputList()) {
+ testPath = Path.of(testDimensionInstanceInput.getInputFile());
+ assertNotNull(testPath);
+
+ testPath = Path.of(testDimensionInstanceInput.getDimensionDataFile());
+ assertNotNull(testPath);
+ }
+
+ // preconditions:
+ // file path does not exist
+ RuntimeException runtimeException = assertThrows(RuntimeException.class, () -> {
+ testPipelineInputTestSupport
+ .getUnresolvedPipelineInput("badFile.json");
+ });
+
+ assertEquals(
+ "Provided path does not exist: " + getResolvedResourcePath("badFile.json").toAbsolutePath().toString(),
+ runtimeException.getMessage());
+
+ // json is bad/has unknown fields
+ runtimeException = assertThrows(RuntimeException.class, () -> {
+ testPipelineInputTestSupport
+ .getUnresolvedPipelineInput(TEST_FILE_BAD_NAME);
+ });
+
+ assertEquals(InvalidProtocolBufferException.class,
+ runtimeException.getCause().getClass());
+ }
+}
diff --git a/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/unittestcoverage/UnitTestReport.java b/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/unittestcoverage/UnitTestReport.java
new file mode 100644
index 0000000..9c32e04
--- /dev/null
+++ b/src/test/java/gov/hhs/aspr/ms/gcm/pipeline/unittestcoverage/UnitTestReport.java
@@ -0,0 +1,24 @@
+package gov.hhs.aspr.ms.gcm.pipeline.unittestcoverage;
+
+public final class UnitTestReport {
+
+ public static void main(final String[] args) {
+
+ System.out.println("Missing Tests Report:");
+ gov.hhs.aspr.ms.util.meta.unittestcoverage.reports.MissingTestsReport.run(args);
+ System.out.print("\n\n\n");
+
+ System.out.println("MetaInfo Report:");
+ gov.hhs.aspr.ms.util.meta.unittestcoverage.reports.MetaInfoReport.run(args);
+ System.out.print("\n\n\n");
+
+ System.out.println("Incomplete Tests Report:");
+ gov.hhs.aspr.ms.util.meta.unittestcoverage.reports.IncompleteClassReport.run(args);
+ System.out.print("\n\n\n");
+
+ System.out.println("Status Report:");
+ gov.hhs.aspr.ms.util.meta.unittestcoverage.reports.StatusReport.run(args);
+ System.out.print("\n\n\n");
+ }
+
+}
diff --git a/src/test/resources/globalPropertiesPluginData1.json b/src/test/resources/globalPropertiesPluginData1.json
new file mode 100644
index 0000000..1c30834
--- /dev/null
+++ b/src/test/resources/globalPropertiesPluginData1.json
@@ -0,0 +1,138 @@
+{
+ "globalPropertyDefinitinions": [{
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": true,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": true,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyDefinition": {
+ "type": "java.lang.Double",
+ "propertyValuesAreMutable": true
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_6_DOUBLE_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }],
+ "globalPropertyValues": [{
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.5160930745117192
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }],
+ "version": "4.2.0"
+}
\ No newline at end of file
diff --git a/src/test/resources/globalPropertiesPluginData2.json b/src/test/resources/globalPropertiesPluginData2.json
new file mode 100644
index 0000000..1c30834
--- /dev/null
+++ b/src/test/resources/globalPropertiesPluginData2.json
@@ -0,0 +1,138 @@
+{
+ "globalPropertyDefinitinions": [{
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": true,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": true,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyDefinition": {
+ "type": "java.lang.Double",
+ "propertyValuesAreMutable": true
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_6_DOUBLE_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }],
+ "globalPropertyValues": [{
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.5160930745117192
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }],
+ "version": "4.2.0"
+}
\ No newline at end of file
diff --git a/src/test/resources/globalPropertiesPluginData3.json b/src/test/resources/globalPropertiesPluginData3.json
new file mode 100644
index 0000000..a31f9a4
--- /dev/null
+++ b/src/test/resources/globalPropertiesPluginData3.json
@@ -0,0 +1,138 @@
+{
+ "globalPropertyDefinitinions": [{
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": false,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": true,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyDefinition": {
+ "type": "java.lang.Double",
+ "propertyValuesAreMutable": true
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_6_DOUBLE_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }],
+ "globalPropertyValues": [{
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.5160930745117192
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }, {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }],
+ "version": "4.2.0"
+}
\ No newline at end of file
diff --git a/src/test/resources/globalPropertiesPluginData4.json b/src/test/resources/globalPropertiesPluginData4.json
new file mode 100644
index 0000000..ed07b42
--- /dev/null
+++ b/src/test/resources/globalPropertiesPluginData4.json
@@ -0,0 +1,151 @@
+{
+ "globalPropertyDefinitinions": [
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": true,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyDefinition": {
+ "propertyValuesAreMutable": false,
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyDefinition": {
+ "type": "java.lang.Double",
+ "propertyValuesAreMutable": true
+ },
+ "propertyTrackingPolicy": true
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ }
+ },
+ "propertyTrackingPolicy": true
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ }
+ },
+ "propertyTrackingPolicy": true
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_6_DOUBLE_IMMUTABLE"
+ },
+ "propertyDefinition": {
+ "defaultValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.0
+ }
+ },
+ "propertyTrackingPolicy": true
+ }
+ ],
+ "globalPropertyValues": [
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_3_DOUBLE_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.DoubleValue",
+ "value": 0.5160930745117192
+ },
+ "propertyValueTime": 0.0
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_5_INTEGER_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_2_INTEGER_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.Int32Value",
+ "value": 0
+ },
+ "propertyValueTime": 0.0
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_4_BOOLEAN_IMMUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ },
+ {
+ "propertyId": {
+ "@type": "type.googleapis.com/gov.hhs.aspr.ms.taskit.protobuf.WrapperEnumValue",
+ "enumTypeUrl": "gov.hhs.aspr.ms.gcm.taskit.protobuf.plugins.TestGlobalPropertyIdInput",
+ "value": "GLOBAL_PROPERTY_1_BOOLEAN_MUTABLE"
+ },
+ "propertyValue": {
+ "@type": "type.googleapis.com/google.protobuf.BoolValue",
+ "value": false
+ },
+ "propertyValueTime": 0.0
+ }
+ ],
+ "version": "4.2.0"
+}
\ No newline at end of file
diff --git a/src/test/resources/pipeline_tester.json b/src/test/resources/pipeline_tester.json
new file mode 100644
index 0000000..11f8cc3
--- /dev/null
+++ b/src/test/resources/pipeline_tester.json
@@ -0,0 +1,49 @@
+{
+ "inputDirectory": "rawInput",
+ "outputDirectory": "testOutput",
+ "testPipelineInput": {
+ "testDataFile1": "rawInput/blocks/testDataFile1.csv",
+ "testDataFile2": "rawInput/blocks/testDataFile2.csv",
+ "testDataFile3": "rawInput/blocks/testDataFile3.csv",
+ "testDataFile4": "rawInput/reports/testDataFile4.csv",
+ "pluginDataFile": "testOutput/testPluginData.json"
+ },
+ "testDimensionPipelineInput": {
+ "testSingleDimensionPipelineInput": {
+ "dimensionInstanceInput": {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension1.csv",
+ "dimensionDataFile": "testOutput/testDimensionData1.json"
+ }
+ },
+ "testMultiDimensionPipelineInput" : {
+ "dimensionInstanceInput": [
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension2.csv",
+ "dimensionDataFile": "testOutput/testDimensionData2.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension3.csv",
+ "dimensionDataFile": "testOutput/testDimensionData3.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension4.csv",
+ "dimensionDataFile": "testOutput/testDimensionData4.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension5.csv",
+ "dimensionDataFile": "testOutput/testDimensionData5.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension6.csv",
+ "dimensionDataFile": "testOutput/testDimensionData6.json"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/pipeline_tester_bad.json b/src/test/resources/pipeline_tester_bad.json
new file mode 100644
index 0000000..fb7b067
--- /dev/null
+++ b/src/test/resources/pipeline_tester_bad.json
@@ -0,0 +1,50 @@
+{
+ "badProp": false,
+ "inputDirectory": "rawInput",
+ "outputDirectory": "testOutput",
+ "testPipelineInput": {
+ "testDataFile1": "rawInput/blocks/testDataFile1.csv",
+ "testDataFile2": "rawInput/blocks/testDataFile2.csv",
+ "testDataFile3": "rawInput/blocks/testDataFile3.csv",
+ "testDataFile4": "rawInput/reports/testDataFile4.csv",
+ "pluginDataFile": "testOutput/testPluginData.json"
+ },
+ "testDimensionPipelineInput": {
+ "testSingleDimensionPipelineInput": {
+ "dimensionInstanceInput": {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension1.csv",
+ "dimensionDataFile": "testOutput/testDimensionData1.json"
+ }
+ },
+ "testMultiDimensionPipelineInput" : {
+ "dimensionInstanceInput": [
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension2.csv",
+ "dimensionDataFile": "testOutput/testDimensionData2.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension3.csv",
+ "dimensionDataFile": "testOutput/testDimensionData3.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension4.csv",
+ "dimensionDataFile": "testOutput/testDimensionData4.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension5.csv",
+ "dimensionDataFile": "testOutput/testDimensionData5.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension6.csv",
+ "dimensionDataFile": "testOutput/testDimensionData6.json"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/pipeline_tester_dir.json b/src/test/resources/pipeline_tester_dir.json
new file mode 100644
index 0000000..1eadb7f
--- /dev/null
+++ b/src/test/resources/pipeline_tester_dir.json
@@ -0,0 +1,49 @@
+{
+ "inputDirectory": "rawInput",
+ "outputDirectory": "testOutput",
+ "testPipelineInput": {
+ "testDataFile1": "blocks/testDataFile1.csv",
+ "testDataFile2": "blocks/testDataFile2.csv",
+ "testDataFile3": "blocks/testDataFile3.csv",
+ "testDataFile4": "reports/testDataFile4.csv",
+ "pluginDataFile": "testPluginData.json"
+ },
+ "testDimensionPipelineInput": {
+ "testSingleDimensionPipelineInput": {
+ "dimensionInstanceInput": {
+ "enabled": true,
+ "inputFile": "dimensions/test_dimension1.csv",
+ "dimensionDataFile": "testDimensionData1.json"
+ }
+ },
+ "testMultiDimensionPipelineInput" : {
+ "dimensionInstanceInput": [
+ {
+ "enabled": true,
+ "inputFile": "dimensions/test_dimension2.csv",
+ "dimensionDataFile": "testDimensionData2.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "dimensions/test_dimension3.csv",
+ "dimensionDataFile": "testDimensionData3.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "dimensions/test_dimension4.csv",
+ "dimensionDataFile": "testDimensionData4.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "dimensions/test_dimension5.csv",
+ "dimensionDataFile": "testDimensionData5.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "dimensions/test_dimension6.csv",
+ "dimensionDataFile": "testDimensionData6.json"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/pipeline_tester_prev.json b/src/test/resources/pipeline_tester_prev.json
new file mode 100644
index 0000000..b6260c8
--- /dev/null
+++ b/src/test/resources/pipeline_tester_prev.json
@@ -0,0 +1,48 @@
+{
+ "runningWithPreviousData": true,
+ "testPipelineInput": {
+ "testDataFile1": "rawInput/blocks/testDataFile1.csv",
+ "testDataFile2": "rawInput/blocks/testDataFile2.csv",
+ "testDataFile3": "rawInput/blocks/testDataFile3.csv",
+ "testDataFile4": "rawInput/reports/testDataFile4.csv",
+ "pluginDataFile": "testOutput/testPluginData.json"
+ },
+ "testDimensionPipelineInput": {
+ "testSingleDimensionPipelineInput": {
+ "dimensionInstanceInput": {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension1.csv",
+ "dimensionDataFile": "testOutput/testDimensionData1.json"
+ }
+ },
+ "testMultiDimensionPipelineInput": {
+ "dimensionInstanceInput": [
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension2.csv",
+ "dimensionDataFile": "testOutput/testDimensionData2.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension3.csv",
+ "dimensionDataFile": "testOutput/testDimensionData3.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension4.csv",
+ "dimensionDataFile": "testOutput/testDimensionData4.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension5.csv",
+ "dimensionDataFile": "testOutput/testDimensionData5.json"
+ },
+ {
+ "enabled": true,
+ "inputFile": "rawInput/dimensions/test_dimension6.csv",
+ "dimensionDataFile": "testOutput/testDimensionData6.json"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
From 8c974d4d3700761abffd31ff0e0f76e8af7743d5 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Fri, 10 May 2024 08:37:06 -0400
Subject: [PATCH 05/19] add dev pr build
---
.github/workflows/dev_build.yml | 2 -
.github/workflows/dev_pr_build.yml | 100 +++++++++++++++++++++++++++++
2 files changed, 100 insertions(+), 2 deletions(-)
create mode 100644 .github/workflows/dev_pr_build.yml
diff --git a/.github/workflows/dev_build.yml b/.github/workflows/dev_build.yml
index 55f41fb..51af358 100644
--- a/.github/workflows/dev_build.yml
+++ b/.github/workflows/dev_build.yml
@@ -11,8 +11,6 @@ name: GCM Pipeline Development Build
on:
push:
branches: [ "dev" ]
- pull_request:
- branches: [ "dev" ]
jobs:
dev-build:
diff --git a/.github/workflows/dev_pr_build.yml b/.github/workflows/dev_pr_build.yml
new file mode 100644
index 0000000..ea62424
--- /dev/null
+++ b/.github/workflows/dev_pr_build.yml
@@ -0,0 +1,100 @@
+# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
+
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+name: GCM Pipeline Development PR Build
+
+on:
+ pull_request:
+ branches-ignore: [ "main" ]
+
+jobs:
+ dev-build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout GCM Pipeline
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ cache: maven
+
+ - name: Get GCM Version
+ run: |
+ echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
+
+ - name: Checkout GCM
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ uses: actions/checkout@v4
+ with:
+ repository: HHS/ASPR-8
+ path: gcm
+ ref: dev
+
+ - name: Get GCM Taskit Version
+ run: |
+ echo "gcm_taskit_version=v$(mvn help:evaluate -Dexpression=gcm-taskit.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
+
+ - name: Checkout GCM Taskit
+ if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
+ uses: actions/checkout@v4
+ with:
+ repository: HHS/ASPR-ms-gcm-taskit
+ path: gcm-taskit
+ ref: dev
+
+ - name: Get Util Version
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ run: |
+ echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV"
+
+ - name: Checkout Util
+ if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
+ uses: actions/checkout@v4
+ with:
+ repository: HHS/ASPR-ms-util
+ path: util
+ ref: dev
+
+ - name: Get Taskit Version
+ if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
+ run: |
+ echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
+
+ - name: Checkout Taskit
+ if: ${{ endsWith(env.taskit_version, 'SNAPSHOT') }}
+ uses: actions/checkout@v4
+ with:
+ repository: HHS/ASPR-ms-taskit
+ path: taskit-core
+ ref: dev
+
+ - name: Build Util
+ if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
+ run: mvn clean install -DskipTests --file util/pom.xml
+
+ - name: Build GCM
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ run: mvn clean install -DskipTests --file gcm/pom.xml
+
+ - name: Build Taskit
+ if: ${{ endsWith(env.taskit_version, 'SNAPSHOT') }}
+ run: mvn clean install -DskipTests --file taskit-core/pom.xml
+
+ - name: Build GCM Taskit
+ if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
+ run: mvn clean install -DskipTests --file gcm-taskit/pom.xml
+
+ - name: Build GCM Pipeline
+ run: mvn clean install --file pom.xml
+
+ # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
+ # - name: Update dependency graph
+ # uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
From e8d84713df48c11e9b2ba6ce540cdbb30f8caa03 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Tue, 14 May 2024 20:30:54 -0400
Subject: [PATCH 06/19] add make testoutput dir
---
.../ms/gcm/pipeline/testsupport/PipelineTestSupport.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
index 4659654..32851cf 100644
--- a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
+++ b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
@@ -18,6 +18,7 @@
import gov.hhs.aspr.ms.taskit.core.TranslationEngine;
import gov.hhs.aspr.ms.taskit.core.TranslationEngineType;
import gov.hhs.aspr.ms.taskit.protobuf.ProtobufTranslationEngine;
+import gov.hhs.aspr.ms.util.resourcehelper.ResourceHelper;
/**
* Test support class for testing pipelines.
@@ -43,7 +44,7 @@ public class PipelineTestSupport {
private final T pipelineInputInstance;
private final PipelineInputResolver pipelineInputResolver;
private final Function resolverFunction;
- // private final String testOutputDir;
+ private final Path testOutputDir;
/**
* Creates a PipelineTestSupport class
@@ -76,7 +77,7 @@ public PipelineTestSupport(TranslationEngine translationEngine, T pipelineInputI
this.pipelineInputClassRef = pipelineInputClassRef;
this.pipelineInputResolver = new PipelineInputResolver(resolverFunction);
this.resolverFunction = resolverFunction;
- // this.testOutputDir = testOutputDir;
+ this.testOutputDir = testOutputDir;
}
/**
@@ -182,7 +183,7 @@ public T getResolvedPipelineInput(T unresolvedInput, boolean useDirectoryFile, b
// make outputDir
// need to update to util 4.2.0-snapshot
- // ResourceHelper.makeOutputDir(testOutputDir);
+ ResourceHelper.makeOutputDir(testOutputDir);
return this.pipelineInputClassRef.cast(resolvedInputBuilder.build());
}
From 4dbcc0cbbd0449bf2c7defd34593ca58f09da174 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Fri, 17 May 2024 04:49:44 -0400
Subject: [PATCH 07/19] update to util 4.2
---
pom.xml | 4 ++--
.../aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java | 3 +--
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/pom.xml b/pom.xml
index d1c05a9..1398db4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,8 +72,8 @@
0.4.0
- 4.2.0
- 2.8.1
+ 4.2.1-SNAPSHOT
+ 2.8.2-SNAPSHOT
3.25.2
0.8.12
5.10.2
diff --git a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
index 32851cf..755fc28 100644
--- a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
+++ b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
@@ -182,8 +182,7 @@ public T getResolvedPipelineInput(T unresolvedInput, boolean useDirectoryFile, b
}
// make outputDir
- // need to update to util 4.2.0-snapshot
- ResourceHelper.makeOutputDir(testOutputDir);
+ ResourceHelper.createDirectory(testOutputDir);
return this.pipelineInputClassRef.cast(resolvedInputBuilder.build());
}
From 41ee354e31614b1c34a48d3e7a015678d1f8cfad Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Wed, 29 May 2024 02:47:00 -0400
Subject: [PATCH 08/19] remove gcm sim dep update gcm taskit dep to scope
provided
---
pom.xml | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/pom.xml b/pom.xml
index 1398db4..fc7afcc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,7 +72,6 @@
0.4.0
- 4.2.1-SNAPSHOT
2.8.2-SNAPSHOT
3.25.2
0.8.12
@@ -80,15 +79,11 @@
-
- gov.hhs.aspr.ms.gcm
- simulation
- ${gcm.version}
-
gov.hhs.aspr.ms.gcm.taskit
protobuf
${gcm-taskit.version}
+ provided
org.jacoco
From f24d2f66330bc3bb0e9ed21048608fa6289615bb Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Wed, 29 May 2024 02:57:43 -0400
Subject: [PATCH 09/19] update dev pipelines
---
.github/workflows/dev_build.yml | 44 ++++++++++++++----------------
.github/workflows/dev_pr_build.yml | 44 ++++++++++++++----------------
2 files changed, 40 insertions(+), 48 deletions(-)
diff --git a/.github/workflows/dev_build.yml b/.github/workflows/dev_build.yml
index 51af358..05d0ca2 100644
--- a/.github/workflows/dev_build.yml
+++ b/.github/workflows/dev_build.yml
@@ -26,18 +26,6 @@ jobs:
distribution: 'temurin'
cache: maven
- - name: Get GCM Version
- run: |
- echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
-
- - name: Checkout GCM
- if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
- uses: actions/checkout@v4
- with:
- repository: HHS/ASPR-8
- path: gcm
- ref: dev
-
- name: Get GCM Taskit Version
run: |
echo "gcm_taskit_version=v$(mvn help:evaluate -Dexpression=gcm-taskit.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
@@ -50,24 +38,19 @@ jobs:
path: gcm-taskit
ref: dev
- - name: Get Util Version
- if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ - name: Get GCM and Taskit Version
run: |
- echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV"
+ echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
+ echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
- - name: Checkout Util
- if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
+ - name: Checkout GCM
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
uses: actions/checkout@v4
with:
- repository: HHS/ASPR-ms-util
- path: util
+ repository: HHS/ASPR-8
+ path: gcm
ref: dev
- - name: Get Taskit Version
- if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
- run: |
- echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
-
- name: Checkout Taskit
if: ${{ endsWith(env.taskit_version, 'SNAPSHOT') }}
uses: actions/checkout@v4
@@ -76,6 +59,19 @@ jobs:
path: taskit-core
ref: dev
+ - name: Get Util Version
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ run: |
+ echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV"
+
+ - name: Checkout Util
+ if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
+ uses: actions/checkout@v4
+ with:
+ repository: HHS/ASPR-ms-util
+ path: util
+ ref: dev
+
- name: Build Util
if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
run: mvn clean install -DskipTests --file util/pom.xml
diff --git a/.github/workflows/dev_pr_build.yml b/.github/workflows/dev_pr_build.yml
index ea62424..d5e8071 100644
--- a/.github/workflows/dev_pr_build.yml
+++ b/.github/workflows/dev_pr_build.yml
@@ -26,18 +26,6 @@ jobs:
distribution: 'temurin'
cache: maven
- - name: Get GCM Version
- run: |
- echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
-
- - name: Checkout GCM
- if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
- uses: actions/checkout@v4
- with:
- repository: HHS/ASPR-8
- path: gcm
- ref: dev
-
- name: Get GCM Taskit Version
run: |
echo "gcm_taskit_version=v$(mvn help:evaluate -Dexpression=gcm-taskit.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
@@ -50,24 +38,19 @@ jobs:
path: gcm-taskit
ref: dev
- - name: Get Util Version
- if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ - name: Get GCM and Taskit Version
run: |
- echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV"
+ echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
+ echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
- - name: Checkout Util
- if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
+ - name: Checkout GCM
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
uses: actions/checkout@v4
with:
- repository: HHS/ASPR-ms-util
- path: util
+ repository: HHS/ASPR-8
+ path: gcm
ref: dev
- - name: Get Taskit Version
- if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
- run: |
- echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
-
- name: Checkout Taskit
if: ${{ endsWith(env.taskit_version, 'SNAPSHOT') }}
uses: actions/checkout@v4
@@ -76,6 +59,19 @@ jobs:
path: taskit-core
ref: dev
+ - name: Get Util Version
+ if: ${{ endsWith(env.gcm_version, 'SNAPSHOT') }}
+ run: |
+ echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV"
+
+ - name: Checkout Util
+ if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
+ uses: actions/checkout@v4
+ with:
+ repository: HHS/ASPR-ms-util
+ path: util
+ ref: dev
+
- name: Build Util
if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
run: mvn clean install -DskipTests --file util/pom.xml
From 14c22f0c7b044aaaa1deafb88ee209713d20c888 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 29 May 2024 03:12:51 -0400
Subject: [PATCH 10/19] --- (#10)
updated-dependencies:
- dependency-name: org.codehaus.mojo:build-helper-maven-plugin
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index fc7afcc..984490b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
1.7.0
- 3.3.0
+ 3.6.0
1.3.2
0.6.1
From 15818ec409456398491b1dd948627e619f978f66 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 29 May 2024 03:15:12 -0400
Subject: [PATCH 11/19] Bump kr.motd.maven:os-maven-plugin from 1.7.0 to 1.7.1
(#7)
Bumps [kr.motd.maven:os-maven-plugin](https://github.com/trustin/os-maven-plugin) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/trustin/os-maven-plugin/releases)
- [Commits](https://github.com/trustin/os-maven-plugin/compare/os-maven-plugin-1.7.0...os-maven-plugin-1.7.1)
---
updated-dependencies:
- dependency-name: kr.motd.maven:os-maven-plugin
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 984490b..e0e67c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,7 +57,7 @@
17
- 1.7.0
+ 1.7.1
3.6.0
1.3.2
0.6.1
From f1f6757769dea1c325f72f38bbdad70a704859a3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 29 May 2024 03:15:27 -0400
Subject: [PATCH 12/19] Bump
com.google.code.maven-replacer-plugin:maven-replacer-plugin (#9)
Bumps com.google.code.maven-replacer-plugin:maven-replacer-plugin from 1.3.2 to 1.4.1.
---
updated-dependencies:
- dependency-name: com.google.code.maven-replacer-plugin:maven-replacer-plugin
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index e0e67c2..54d0e3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,7 +59,7 @@
1.7.1
3.6.0
- 1.3.2
+ 1.4.1
0.6.1
From 0ea519b8ba43155d6d8b038710da23adcd1aa8a0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 14 Jun 2024 00:25:33 -0400
Subject: [PATCH 13/19] Bump org.apache.maven.plugins:maven-javadoc-plugin
(#11)
Bumps the standard-plugins group with 1 update: [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin).
Updates `org.apache.maven.plugins:maven-javadoc-plugin` from 3.6.3 to 3.7.0
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.3...maven-javadoc-plugin-3.7.0)
---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: standard-plugins
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 54d0e3e..0b1d27e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,7 +67,7 @@
3.2.5
3.2.5
3.3.1
- 3.6.3
+ 3.7.0
3.2.4
0.4.0
From e3807c644b0983de54db986b5274686454309a91 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Fri, 14 Jun 2024 13:48:54 -0400
Subject: [PATCH 14/19] Merge branch 'main' of
https://github.com/HHS/ASPR-ms-gcm-pipeline into dev
---
pom.xml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 0b1d27e..f43b09c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
- 1.1.0-SNAPSHOT
+ 1.1.0
UTF-8
@@ -72,7 +72,7 @@
0.4.0
- 2.8.2-SNAPSHOT
+ 2.8.3
3.25.2
0.8.12
5.10.2
@@ -276,6 +276,8 @@
central
true
ASPR MS GCM Pipeline
+ true
+ published
From 55e939954e237ec49b48f7e49c365cd909d8eccf Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Fri, 14 Jun 2024 13:58:37 -0400
Subject: [PATCH 15/19] fix for workflow error
---
.github/workflows/dev_build.yml | 1 +
.github/workflows/dev_pr_build.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/.github/workflows/dev_build.yml b/.github/workflows/dev_build.yml
index 05d0ca2..5944309 100644
--- a/.github/workflows/dev_build.yml
+++ b/.github/workflows/dev_build.yml
@@ -39,6 +39,7 @@ jobs:
ref: dev
- name: Get GCM and Taskit Version
+ if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
run: |
echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
diff --git a/.github/workflows/dev_pr_build.yml b/.github/workflows/dev_pr_build.yml
index d5e8071..d904a12 100644
--- a/.github/workflows/dev_pr_build.yml
+++ b/.github/workflows/dev_pr_build.yml
@@ -39,6 +39,7 @@ jobs:
ref: dev
- name: Get GCM and Taskit Version
+ if: ${{ endsWith(env.gcm_taskit_version, 'SNAPSHOT') }}
run: |
echo "gcm_version=v$(mvn help:evaluate -Dexpression=gcm.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
echo "taskit_version=v$(mvn help:evaluate -Dexpression=taskit.version -q -DforceStdout --file gcm-taskit/pom.xml)" >> "$GITHUB_ENV"
From aac9689956f54f45155c9fd56d582ddccabff86d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Jun 2024 12:58:18 -0400
Subject: [PATCH 16/19] Bump the standard-plugins group with 2 updates (#14)
Bumps the standard-plugins group with 2 updates: [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) and [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire).
Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.2.5 to 3.3.0
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.5...surefire-3.3.0)
Updates `org.apache.maven.plugins:maven-failsafe-plugin` from 3.2.5 to 3.3.0
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.5...surefire-3.3.0)
---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: standard-plugins
- dependency-name: org.apache.maven.plugins:maven-failsafe-plugin
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: standard-plugins
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index f43b09c..204d3af 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,8 +64,8 @@
1.6.0
- 3.2.5
- 3.2.5
+ 3.3.0
+ 3.3.0
3.3.1
3.7.0
3.2.4
From 8205b157b528ce46d588a3edc4528bb4d8129321 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Mon, 17 Jun 2024 13:06:42 -0400
Subject: [PATCH 17/19] remove SNAPSHOT
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index bad9c31..204d3af 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
- 1.1.0-SNAPSHOT
+ 1.1.0
UTF-8
From f5d480117117166d339ac5360a514651f3b95134 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Mon, 17 Jun 2024 13:13:34 -0400
Subject: [PATCH 18/19] remove dependency
---
pom.xml | 7 -------
1 file changed, 7 deletions(-)
diff --git a/pom.xml b/pom.xml
index 204d3af..2e79d55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -295,13 +295,6 @@
${maven-javadoc-plugin.version}
all,-missing
-
-
- gov.hhs.aspr.ms.gcm
- simulation
- ${gcm.version}
-
-
false
-Xmaxerrs
From e28b4ff8eb399fce3270e66ca7b38b1e51822353 Mon Sep 17 00:00:00 2001
From: bischoffz
Date: Mon, 17 Jun 2024 13:32:22 -0400
Subject: [PATCH 19/19] fix javadoc
---
.../aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
index 755fc28..534b01c 100644
--- a/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
+++ b/src/main/java/gov/hhs/aspr/ms/gcm/pipeline/testsupport/PipelineTestSupport.java
@@ -63,7 +63,7 @@ public class PipelineTestSupport {
* Takes in a string for the test output directory so that it can be created for
* you when getting a resolved pipeline input.
*
- * @param translationEngineBuilder
+ * @param translationEngine
* @param pipelineInputInstance
* @param pipelineInputClassRef
* @param resolverFunction