use of freemarker.template.SimpleScalar in project ninja by ninjaframework.
the class TemplateEngineFreemarkerI18nMethodTest method testThatSingleKeyWithMissingValueReturnsDefaultKey.
@Test
public void testThatSingleKeyWithMissingValueReturnsDefaultKey() throws Exception {
Optional<Result> resultOptional = Optional.of(result);
Mockito.when(messages.get("my.message.key", context, resultOptional)).thenReturn(Optional.<String>empty());
List args = new ArrayList();
args.add(new SimpleScalar("my.message.key"));
TemplateModel returnValue = templateEngineFreemarkerI18nMethod.exec(args);
assertThat(((SimpleScalar) returnValue).getAsString(), CoreMatchers.equalTo("my.message.key"));
// There must have been logged something because we did not find
// the value for the key...
Mockito.verify(mockAppender).doAppend(Matchers.anyObject());
}
use of freemarker.template.SimpleScalar in project ninja by ninjaframework.
the class TemplateEngineFreemarkerI18nMethodTest method testThatKeyWithPlaceholderWorks.
@Test
public void testThatKeyWithPlaceholderWorks() throws Exception {
Optional<Result> resultOptional = Optional.of(result);
List args = new ArrayList();
args.add(new SimpleScalar("my.message.key"));
args.add(new SimpleScalar("1000"));
Mockito.when(messages.get(Matchers.eq("my.message.key"), Matchers.eq(context), Matchers.eq(resultOptional), Matchers.any(Object.class))).thenReturn(Optional.of("This simulates the translated message number 1000!"));
TemplateModel returnValue = templateEngineFreemarkerI18nMethod.exec(args);
assertThat(((SimpleScalar) returnValue).getAsString(), CoreMatchers.equalTo("This simulates the translated message number 1000!"));
Mockito.verify(mockAppender, Mockito.never()).doAppend(Matchers.anyObject());
}
use of freemarker.template.SimpleScalar in project ninja by ninjaframework.
the class TemplateEngineFreemarkerI18nMethod method exec.
public TemplateModel exec(List args) throws TemplateModelException {
if (args.size() == 1 && args.get(0) instanceof StringModel && ((StringModel) args.get(0)).getWrappedObject() instanceof ConstraintViolation) {
ConstraintViolation violation = (ConstraintViolation) ((StringModel) args.get(0)).getWrappedObject();
String messageValue = messages.get(violation.getMessageKey(), context, result, violation.getMessageParams()).orElse(violation.getDefaultMessage());
return new SimpleScalar(messageValue);
} else if (args.size() == 1) {
String messageKey = ((SimpleScalar) args.get(0)).getAsString();
String messageValue = messages.get(messageKey, context, result).orElse(messageKey);
logIfMessageKeyIsMissing(messageKey, messageValue);
return new SimpleScalar(messageValue);
} else if (args.size() > 1) {
List<String> strings = Lists.newArrayList();
for (Object o : args) {
// We currently allow only numbers and strings as arguments
if (o instanceof SimpleScalar) {
strings.add(((SimpleScalar) o).getAsString());
} else if (o instanceof SimpleNumber) {
strings.add(((SimpleNumber) o).toString());
}
}
String messageKey = strings.get(0);
String messageValue = messages.get(messageKey, context, result, strings.subList(1, strings.size()).toArray()).orElse(messageKey);
logIfMessageKeyIsMissing(messageKey, messageValue);
return new SimpleScalar(messageValue);
} else {
throw new TemplateModelException("Using i18n without any key is not possible.");
}
}
use of freemarker.template.SimpleScalar in project ninja by ninjaframework.
the class TemplateEngineFreemarkerReverseRouteHelper method computeReverseRoute.
public TemplateModel computeReverseRoute(List args) throws TemplateModelException {
if (args.size() < 2) {
throw new TemplateModelException("Please specify at least classname and controller (2 parameters).");
} else {
List<String> strings = new ArrayList<>(args.size());
for (Object o : args) {
// We currently allow only numbers and strings as arguments
if (o instanceof String) {
strings.add((String) o);
}
if (o instanceof SimpleScalar) {
strings.add(((SimpleScalar) o).getAsString());
} else if (o instanceof SimpleNumber) {
strings.add(((SimpleNumber) o).toString());
}
}
try {
Class<?> clazz = Class.forName(strings.get(0));
Object[] parameterMap = strings.subList(2, strings.size()).toArray();
String reverseRoute = router.getReverseRoute(clazz, strings.get(1), parameterMap);
return new SimpleScalar(reverseRoute);
} catch (ClassNotFoundException ex) {
throw new TemplateModelException("Error. Cannot find class for String: " + strings.get(0));
}
}
}
use of freemarker.template.SimpleScalar in project android by JetBrains.
the class FmEscapePropertyValueMethodTest method check.
@SuppressWarnings("rawtypes")
private static void check(String expected, String s) throws TemplateModelException {
FmEscapePropertyValueMethod method = new FmEscapePropertyValueMethod();
List list = Collections.singletonList(new SimpleScalar(s));
assertEquals(expected, ((SimpleScalar) method.exec(list)).getAsString());
}
Aggregations