From 5ef448fa14b5e22f31f42420a27a4b6179c6cf7d Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 15 May 2021 19:32:21 +0200 Subject: [PATCH] Fix bug in placeholder replacement --- .../AbstractPlaceholderAwarePostProcessor.java | 2 ++ .../AbstractPlaceholderAwarePostProcessorTest.java | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java b/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java index 8081df8a..410b7702 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java @@ -76,6 +76,8 @@ public abstract class AbstractPlaceholderAwarePostProcessor extends AbstractPost if (questionMark > 0) { placeholderName = placeholder.substring(2, questionMark); defaultValue = placeholder.substring(questionMark + 1, placeholder.length() - 1); + } else { + defaultValue = ""; } int bracket = placeholder.indexOf('('); if (bracket > 0) { diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java index 06f91a45..776f9121 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java @@ -1,6 +1,8 @@ package ctbrec.recorder.postprocessing; import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; import java.io.IOException; import java.time.ZoneId; @@ -150,4 +152,11 @@ public class AbstractPlaceholderAwarePostProcessorTest extends AbstractPpTest { input = "asdf_${modelGroupName?${utcDateTime?anonymous}}_asdf"; assertEquals("asdf_anonymous_asdf", placeHolderAwarePp.fillInPlaceHolders(input, ctx)); } + + @Test + public void testMissingValueForPlaceholder() throws IOException { + String input = "asdf_${modelNotes}_asdf"; + when(config.getModelNotes(any())).thenReturn(null); + assertEquals("asdf__asdf", placeHolderAwarePp.fillInPlaceHolders(input, createPostProcessingContext(rec, null, config))); + } }