From 9106b825601985405fbb9a02173c25046ee7aacd Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 29 Aug 2022 14:12:09 -0500 Subject: [PATCH] Fixing tests --- .../actions/processes/ProcessSummaryLine.java | 12 +++++++++++ .../StreamedETLWithFrontendProcess.java | 21 ++++++++++--------- .../qqq/frontend/picocli/QCommandBuilder.java | 11 +++++++++- .../sampleapp/SampleMetaDataProvider.java | 12 +++++++---- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/processes/ProcessSummaryLine.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/processes/ProcessSummaryLine.java index ac94faff..21c5db44 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/processes/ProcessSummaryLine.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/processes/ProcessSummaryLine.java @@ -49,6 +49,18 @@ public class ProcessSummaryLine implements Serializable + /******************************************************************************* + ** + *******************************************************************************/ + public ProcessSummaryLine(Status status, String message) + { + this.status = status; + this.message = message; + this.count = 0; + } + + + /******************************************************************************* ** *******************************************************************************/ diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLWithFrontendProcess.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLWithFrontendProcess.java index e8b2a57a..292dee84 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLWithFrontendProcess.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/etl/streamedwithfrontend/StreamedETLWithFrontendProcess.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.Map; import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData; +import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType; import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QComponentType; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendComponentMetaData; @@ -117,11 +118,11 @@ public class StreamedETLWithFrontendProcess .withName(STEP_NAME_PREVIEW) .withCode(new QCodeReference(StreamedETLPreviewStep.class)) .withInputData(new QFunctionInputMetaData() - .withField(new QFieldMetaData().withName(FIELD_SOURCE_TABLE).withDefaultValue(defaultFieldValues.get(FIELD_SOURCE_TABLE))) - .withField(new QFieldMetaData().withName(FIELD_SUPPORTS_FULL_VALIDATION).withDefaultValue(defaultFieldValues.getOrDefault(FIELD_SUPPORTS_FULL_VALIDATION, false))) - .withField(new QFieldMetaData().withName(FIELD_DEFAULT_QUERY_FILTER).withDefaultValue(defaultFieldValues.get(FIELD_DEFAULT_QUERY_FILTER))) - .withField(new QFieldMetaData().withName(FIELD_EXTRACT_CODE).withDefaultValue(new QCodeReference(extractStepClass))) - .withField(new QFieldMetaData().withName(FIELD_TRANSFORM_CODE).withDefaultValue(new QCodeReference(transformStepClass))) + .withField(new QFieldMetaData(FIELD_SOURCE_TABLE, QFieldType.STRING).withDefaultValue(defaultFieldValues.get(FIELD_SOURCE_TABLE))) + .withField(new QFieldMetaData(FIELD_SUPPORTS_FULL_VALIDATION, QFieldType.BOOLEAN).withDefaultValue(defaultFieldValues.getOrDefault(FIELD_SUPPORTS_FULL_VALIDATION, false))) + .withField(new QFieldMetaData(FIELD_DEFAULT_QUERY_FILTER, QFieldType.STRING).withDefaultValue(defaultFieldValues.get(FIELD_DEFAULT_QUERY_FILTER))) + .withField(new QFieldMetaData(FIELD_EXTRACT_CODE, QFieldType.STRING).withDefaultValue(new QCodeReference(extractStepClass))) + .withField(new QFieldMetaData(FIELD_TRANSFORM_CODE, QFieldType.STRING).withDefaultValue(new QCodeReference(transformStepClass))) ); QFrontendStepMetaData reviewStep = new QFrontendStepMetaData() @@ -132,19 +133,19 @@ public class StreamedETLWithFrontendProcess .withName(STEP_NAME_VALIDATE) .withCode(new QCodeReference(StreamedETLValidateStep.class)) .withInputData(new QFunctionInputMetaData() - .withField(new QFieldMetaData().withName(FIELD_DO_FULL_VALIDATION).withDefaultValue(defaultFieldValues.get(FIELD_DO_FULL_VALIDATION)))) + .withField(new QFieldMetaData(FIELD_DO_FULL_VALIDATION, QFieldType.BOOLEAN).withDefaultValue(defaultFieldValues.get(FIELD_DO_FULL_VALIDATION)))) .withOutputMetaData(new QFunctionOutputMetaData() - .withField(new QFieldMetaData().withName(FIELD_VALIDATION_SUMMARY)) + .withField(new QFieldMetaData(FIELD_VALIDATION_SUMMARY, QFieldType.STRING)) ); QStepMetaData executeStep = new QBackendStepMetaData() .withName(STEP_NAME_EXECUTE) .withCode(new QCodeReference(StreamedETLExecuteStep.class)) .withInputData(new QFunctionInputMetaData() - .withField(new QFieldMetaData().withName(FIELD_DESTINATION_TABLE).withDefaultValue(defaultFieldValues.get(FIELD_DESTINATION_TABLE))) - .withField(new QFieldMetaData().withName(FIELD_LOAD_CODE).withDefaultValue(new QCodeReference(loadStepClass)))) + .withField(new QFieldMetaData(FIELD_DESTINATION_TABLE, QFieldType.STRING).withDefaultValue(defaultFieldValues.get(FIELD_DESTINATION_TABLE))) + .withField(new QFieldMetaData(FIELD_LOAD_CODE, QFieldType.STRING).withDefaultValue(new QCodeReference(loadStepClass)))) .withOutputMetaData(new QFunctionOutputMetaData() - .withField(new QFieldMetaData().withName(FIELD_PROCESS_SUMMARY)) + .withField(new QFieldMetaData(FIELD_PROCESS_SUMMARY, QFieldType.STRING)) ); QFrontendStepMetaData resultStep = new QFrontendStepMetaData() diff --git a/qqq-middleware-picocli/src/main/java/com/kingsrook/qqq/frontend/picocli/QCommandBuilder.java b/qqq-middleware-picocli/src/main/java/com/kingsrook/qqq/frontend/picocli/QCommandBuilder.java index b1e18017..fe8955eb 100644 --- a/qqq-middleware-picocli/src/main/java/com/kingsrook/qqq/frontend/picocli/QCommandBuilder.java +++ b/qqq-middleware-picocli/src/main/java/com/kingsrook/qqq/frontend/picocli/QCommandBuilder.java @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QProcessMetaData; @@ -384,7 +385,7 @@ public class QCommandBuilder for(QFieldMetaData field : inputFieldMap.values()) { processCommand.addOption(CommandLine.Model.OptionSpec.builder("--field-" + field.getName()) - .type(getClassForField(field)) + .type(Objects.requireNonNullElse(getClassForField(field), String.class)) .build()); } @@ -401,6 +402,14 @@ public class QCommandBuilder @SuppressWarnings("checkstyle:Indentation") private Class getClassForField(QFieldMetaData field) { + if(field.getType() == null) + { + /////////////////////////////////////////////////// + // shouldn't happen, but just in case, avoid NPE // + /////////////////////////////////////////////////// + return (null); + } + // @formatter:off // IJ can't do new-style switch correctly yet... return switch(field.getType()) { diff --git a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java index 09817033..ce773b14 100644 --- a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java +++ b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java @@ -43,6 +43,8 @@ import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType; import com.kingsrook.qqq.backend.core.model.metadata.layout.QAppMetaData; import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon; import com.kingsrook.qqq.backend.core.model.metadata.processes.QBackendStepMetaData; +import com.kingsrook.qqq.backend.core.model.metadata.processes.QComponentType; +import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendComponentMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFrontendStepMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFunctionInputMetaData; import com.kingsrook.qqq.backend.core.model.metadata.processes.QFunctionOutputMetaData; @@ -320,10 +322,7 @@ public class SampleMetaDataProvider .withIsHidden(true) .addStep(new QBackendStepMetaData() .withName("prepare") - .withCode(new QCodeReference() - .withName(MockBackendStep.class.getName()) - .withCodeType(QCodeType.JAVA) - .withCodeUsage(QCodeUsage.BACKEND_STEP)) // todo - needed, or implied in this context? + .withCode(new QCodeReference(MockBackendStep.class)) .withInputData(new QFunctionInputMetaData() .withRecordListMetaData(new QRecordListMetaData().withTableName(TABLE_NAME_PERSON)) .withFieldList(List.of( @@ -354,6 +353,7 @@ public class SampleMetaDataProvider .addStep(new QFrontendStepMetaData() .withName("setup") + .withComponent(new QFrontendComponentMetaData().withType(QComponentType.EDIT_FORM)) .withFormField(new QFieldMetaData("greetingPrefix", QFieldType.STRING)) .withFormField(new QFieldMetaData("greetingSuffix", QFieldType.STRING)) ) @@ -380,6 +380,8 @@ public class SampleMetaDataProvider .addStep(new QFrontendStepMetaData() .withName("results") + .withComponent(new QFrontendComponentMetaData().withType(QComponentType.VIEW_FORM)) + .withComponent(new QFrontendComponentMetaData().withType(QComponentType.RECORD_LIST)) .withViewField(new QFieldMetaData("noOfPeopleGreeted", QFieldType.INTEGER)) .withViewField(new QFieldMetaData("outputMessage", QFieldType.STRING)) .withRecordListField(new QFieldMetaData("id", QFieldType.INTEGER)) @@ -442,10 +444,12 @@ public class SampleMetaDataProvider .withName(PROCESS_NAME_SLEEP_INTERACTIVE) .addStep(new QFrontendStepMetaData() .withName(SCREEN_0) + .withComponent(new QFrontendComponentMetaData().withType(QComponentType.VIEW_FORM)) .withFormField(new QFieldMetaData("outputMessage", QFieldType.STRING))) .addStep(SleeperStep.getMetaData()) .addStep(new QFrontendStepMetaData() .withName(SCREEN_1) + .withComponent(new QFrontendComponentMetaData().withType(QComponentType.VIEW_FORM)) .withFormField(new QFieldMetaData("outputMessage", QFieldType.STRING))); }