From 01c78534ef505320283514f25eb4cf93980af8f6 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 28 Dec 2023 16:20:38 -0600 Subject: [PATCH] Add test for previous commit (Add option to move timestamps, e.g., to make overlapping windows) --- .../ExtractViaBasepullQueryStepTest.java | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/processes/implementations/basepull/ExtractViaBasepullQueryStepTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/processes/implementations/basepull/ExtractViaBasepullQueryStepTest.java index 690b290e..90f2a7a6 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/processes/implementations/basepull/ExtractViaBasepullQueryStepTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/processes/implementations/basepull/ExtractViaBasepullQueryStepTest.java @@ -97,4 +97,87 @@ class ExtractViaBasepullQueryStepTest extends BaseTest .withValues(Map.of("queryFilterJson", "{}")))); } + + + /******************************************************************************* + ** + *******************************************************************************/ + @Test + void testSubtractingSeconds() throws QException + { + String originalLastRunTime = "2023-12-28T15:00:00Z"; + String lastRunTimeMinusOneMinute = "2023-12-28T14:59:00Z"; + + String originalThisRunTime = "2023-12-28T15:05:00Z"; + String thisRunTimePlusFiveSeconds = "2023-12-28T15:05:05Z"; + + /////////////////////////// + // cases for lastRunTime // + /////////////////////////// + { + /////////////////////////////////////////////////////////////////////////////// + // confirm we don't fail (and don't subtract) if config is absent from input // + /////////////////////////////////////////////////////////////////////////////// + RunBackendStepInput input = new RunBackendStepInput(); + input.setBasepullLastRunTime(Instant.parse(originalLastRunTime)); + String lastRunTimeString = new ExtractViaBasepullQueryStep().getLastRunTimeString(input); + assertEquals(originalLastRunTime, lastRunTimeString); + } + { + ////////////////////////////////////////////////////////////////////////////////// + // confirm we don't fail or subtract if secondsToSubtract isn't given in config // + ////////////////////////////////////////////////////////////////////////////////// + RunBackendStepInput input = new RunBackendStepInput(); + input.setBasepullLastRunTime(Instant.parse(originalLastRunTime)); + input.addValue(RunProcessAction.BASEPULL_CONFIGURATION, new BasepullConfiguration()); + String lastRunTimeString = new ExtractViaBasepullQueryStep().getLastRunTimeString(input); + assertEquals(originalLastRunTime, lastRunTimeString); + } + { + /////////////////////////////////////////////////////////////////////// + // confirm we do subtract if a subtract value is given in the config // + /////////////////////////////////////////////////////////////////////// + RunBackendStepInput input = new RunBackendStepInput(); + input.setBasepullLastRunTime(Instant.parse(originalLastRunTime)); + input.addValue(RunProcessAction.BASEPULL_CONFIGURATION, new BasepullConfiguration() + .withSecondsToSubtractFromLastRunTimeForTimestampQuery(60)); + String lastRunTimeString = new ExtractViaBasepullQueryStep().getLastRunTimeString(input); + assertEquals(lastRunTimeMinusOneMinute, lastRunTimeString); + } + + /////////////////////////// + // cases for thisRunTime // + /////////////////////////// + { + /////////////////////////////////////////////////////////////////////////////// + // confirm we don't fail (and don't subtract) if config is absent from input // + /////////////////////////////////////////////////////////////////////////////// + RunBackendStepInput input = new RunBackendStepInput(); + input.addValue(RunProcessAction.BASEPULL_THIS_RUNTIME_KEY, originalThisRunTime); + String thisRunTimeString = new ExtractViaBasepullQueryStep().getThisRunTimeString(input); + assertEquals(originalThisRunTime, thisRunTimeString); + } + { + ////////////////////////////////////////////////////////////////////////////////// + // confirm we don't fail or subtract if secondsToSubtract isn't given in config // + ////////////////////////////////////////////////////////////////////////////////// + RunBackendStepInput input = new RunBackendStepInput(); + input.addValue(RunProcessAction.BASEPULL_THIS_RUNTIME_KEY, originalThisRunTime); + input.addValue(RunProcessAction.BASEPULL_CONFIGURATION, new BasepullConfiguration()); + String thisRunTimeString = new ExtractViaBasepullQueryStep().getThisRunTimeString(input); + assertEquals(originalThisRunTime, thisRunTimeString); + } + { + /////////////////////////////////////////////////////////////////////// + // confirm we do subtract if a subtract value is given in the config // + /////////////////////////////////////////////////////////////////////// + RunBackendStepInput input = new RunBackendStepInput(); + input.addValue(RunProcessAction.BASEPULL_THIS_RUNTIME_KEY, originalThisRunTime); + input.addValue(RunProcessAction.BASEPULL_CONFIGURATION, new BasepullConfiguration() + .withSecondsToSubtractFromThisRunTimeForTimestampQuery(-5)); + String thisRunTimeString = new ExtractViaBasepullQueryStep().getThisRunTimeString(input); + assertEquals(thisRunTimePlusFiveSeconds, thisRunTimeString); + } + } + }