Skip to content

Commit 73dd810

Browse files
committed
add test for PyishObjectMapper.getAsPyishString
1 parent 1e3d8b8 commit 73dd810

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

src/test/java/com/hubspot/jinjava/objects/serialization/PyishObjectMapperTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
import com.hubspot.jinjava.JinjavaConfig;
1010
import com.hubspot.jinjava.LegacyOverrides;
1111
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
12+
import com.hubspot.jinjava.interpret.OutputTooBigException;
1213
import com.hubspot.jinjava.objects.collections.SizeLimitingPyMap;
1314
import java.util.AbstractMap;
1415
import java.util.ArrayList;
1516
import java.util.HashMap;
1617
import java.util.List;
1718
import java.util.Map;
19+
import org.apache.commons.lang3.RandomStringUtils;
1820
import org.junit.Test;
1921

2022
public class PyishObjectMapperTest {
@@ -87,6 +89,25 @@ public void itLimitsDepth() {
8789
.as("The string to be serialized is larger than the max output size")
8890
.isInstanceOf(JsonMappingException.class)
8991
.hasMessageContaining("Max length of 10000 chars reached");
92+
93+
assertThatThrownBy(() -> PyishObjectMapper.getAsPyishString(original))
94+
.isInstanceOf(OutputTooBigException.class);
95+
} finally {
96+
JinjavaInterpreter.popCurrent();
97+
}
98+
}
99+
100+
@Test
101+
public void itLimitsOutputSize() {
102+
String input = RandomStringUtils.random(10002);
103+
try {
104+
Jinjava jinjava = new Jinjava(
105+
JinjavaConfig.newBuilder().withMaxOutputSize(10000).build()
106+
);
107+
JinjavaInterpreter.pushCurrent(jinjava.newInterpreter());
108+
assertThatThrownBy(() -> PyishObjectMapper.getAsPyishString(input))
109+
.isInstanceOf(OutputTooBigException.class)
110+
.hasMessageContaining("over limit of 10000 bytes");
90111
} finally {
91112
JinjavaInterpreter.popCurrent();
92113
}

0 commit comments

Comments
 (0)