Skip to content

Commit db55adc

Browse files
committed
Implement PyMap.get with the optional default.
1 parent 0dc554b commit db55adc

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

  • src
    • main/java/com/hubspot/jinjava/objects/collections
    • test/java/com/hubspot/jinjava/objects/collections

src/main/java/com/hubspot/jinjava/objects/collections/PyMap.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ protected Map<String, Object> delegate() {
2121
return map;
2222
}
2323

24+
public Object get(String key, Object defaultValue) {
25+
if (!map.containsKey(key)) {
26+
return defaultValue;
27+
}
28+
return map.get(key);
29+
}
30+
2431
@Override
2532
public Object put(String s, Object o) {
2633
if (o == this) {

src/test/java/com/hubspot/jinjava/objects/collections/PyMapTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,18 @@ public void itGetsKeysWithVariableName() {
322322
.isEqualTo("value1");
323323
}
324324

325+
@Test
326+
public void itSupportsGetWithOptionalDefault() {
327+
assertThat(
328+
jinjava.render(
329+
"{% set test = {\"key1\": \"value1\"} %}" +
330+
"{{ test.get(\"key2\", \"default\") }}",
331+
Collections.emptyMap()
332+
)
333+
)
334+
.isEqualTo("default");
335+
}
336+
325337
@Test
326338
public void itFallsBackUnknownVariableNameToString() {
327339
assertThat(

0 commit comments

Comments
 (0)