StringTemplateValidationUtils { public static void validateStringTemplate(StringTemplateCompiler stringTemplateCompiler, String stringTemplate, ValidationContext ctx, String fieldToken) { Preconditions.checkArgument(stringTemplateCompiler != null); Preconditions.checkArgument(ctx != null); try { stringTemplateCompiler.compile(stringTemplate); } catch (Throwable t) { ctx.getErrors().add(new StringTemplateValidationError(fieldToken, t)); } }  static void validateStringTemplate(StringTemplateCompiler stringTemplateCompiler, String stringTemplate,
			ValidationContext ctx, String fieldToken);  }
@Test public void testValidateStringTemplate_blackbox_expectOkForConstant() throws Exception { StringTemplateCompiler stringTemplateCompiler = new StringTemplateCompilerlImpl(); String stringTemplate = "Constant text"; ValidationContext ctx = new ValidationContext(); String fieldToken = "fieldToken"; StringTemplateValidationUtils.validateStringTemplate(stringTemplateCompiler, stringTemplate, ctx, fieldToken); assertEquals(false, ctx.getHasErrors()); }
@Test public void testValidateStringTemplate_blackbox_expectOkForValidExpression() throws Exception { StringTemplateCompiler stringTemplateCompiler = new StringTemplateCompilerlImpl(); String stringTemplate = "Constant text plus ${vars['4444']}"; ValidationContext ctx = new ValidationContext(); String fieldToken = "fieldToken"; StringTemplateValidationUtils.validateStringTemplate(stringTemplateCompiler, stringTemplate, ctx, fieldToken); assertEquals(false, ctx.getHasErrors()); }
@Test public void testValidateStringTemplate_blackbox_expectValidationErrorForWrongExpression() throws Exception { StringTemplateCompiler stringTemplateCompiler = new StringTemplateCompilerlImpl(); String stringTemplate = "Constant text plus ${vars['4444"; ValidationContext ctx = new ValidationContext(); String fieldToken = "fieldToken"; StringTemplateValidationUtils.validateStringTemplate(stringTemplateCompiler, stringTemplate, ctx, fieldToken); assertEquals(true, ctx.getHasErrors()); }