99import com .hubspot .jinjava .interpret .Context ;
1010import com .hubspot .jinjava .interpret .DeferredValue ;
1111import com .hubspot .jinjava .interpret .JinjavaInterpreter ;
12+ import com .hubspot .jinjava .interpret .RenderResult ;
1213import com .hubspot .jinjava .lib .filter .Filter ;
1314import com .hubspot .jinjava .lib .tag .ImportTag ;
1415import com .hubspot .jinjava .lib .tag .ImportTagTest ;
2223import com .hubspot .jinjava .loader .RelativePathResolver ;
2324import com .hubspot .jinjava .loader .ResourceLocator ;
2425import com .hubspot .jinjava .mode .EagerExecutionMode ;
25- import com .hubspot .jinjava .objects .collections .PyMap ;
2626import com .hubspot .jinjava .tree .parse .DefaultTokenScannerSymbols ;
2727import com .hubspot .jinjava .tree .parse .TagToken ;
2828import java .io .IOException ;
2929import java .nio .charset .Charset ;
3030import java .nio .charset .StandardCharsets ;
31+ import java .util .HashMap ;
3132import java .util .Map ;
3233import java .util .Map .Entry ;
3334import java .util .Optional ;
@@ -165,66 +166,32 @@ public void itHandlesMultiLayerAliased() {
165166 @ Test
166167 @ SuppressWarnings ("unchecked" )
167168 public void itHandlesMultiLayerAliasedAndDeferred () {
169+ setupResourceLocator ();
168170 String child2Alias = "double_child" ;
169- JinjavaInterpreter child = getChildInterpreter (interpreter , CONTEXT_VAR );
170- JinjavaInterpreter child2 = getChildInterpreter (child , child2Alias );
171-
172- child2 .render ("{% set foo = 'foo val' %}" );
173- child .render ("{% set bar = 'bar val' %}" );
174- child2 .render ("{% set foo_d = deferred %}" );
175-
176- getAliasedStrategy (child2Alias , child ).integrateChild (child2 );
177- getAliasedStrategy (CONTEXT_VAR , interpreter ).integrateChild (child );
171+ RenderResult result = jinjava .renderForResult (
172+ "{% import 'layer-one.jinja' as context_var %}" ,
173+ new HashMap <>()
174+ );
178175
179- assertThat (interpreter .getContext ().get (CONTEXT_VAR )).isInstanceOf (PyMap .class );
180- assertThat (
181- ((Map <String , Object >) interpreter .getContext ().get (CONTEXT_VAR )).get (child2Alias )
182- )
183- .isInstanceOf (DeferredValue .class );
176+ assertThat (result .getContext ().get (CONTEXT_VAR )).isInstanceOf (DeferredValue .class );
184177 assertThat (
185178 (
186- (
187- (Map <String , Object >) (
188- (DeferredValue ) (
189- (Map <String , Object >) (interpreter .getContext ().get (CONTEXT_VAR ))
190- ).get (child2Alias )
191- ).getOriginalValue ()
192- ).get ("foo" )
193- )
194- )
195- .isEqualTo ("foo val" );
196-
197- assertThat (
198- (((Map <String , Object >) interpreter .getContext ().get (CONTEXT_VAR )).get ("bar" ))
199- )
200- .isEqualTo ("bar val" );
201- }
202-
203- @ Test
204- @ SuppressWarnings ("unchecked" )
205- public void itHandlesMultiLayerAliasedAndNullDeferred () {
206- String child2Alias = "double_child" ;
207- JinjavaInterpreter child = getChildInterpreter (interpreter , CONTEXT_VAR );
208- JinjavaInterpreter child2 = getChildInterpreter (child , child2Alias );
209-
210- child2 .render ("{% set foo = 'foo val' %}" );
211- child .render ("{% set bar = 'bar val' %}" );
212- child2 .render ("{% set foo_d = deferred %}" );
213-
214- getAliasedStrategy (child2Alias , child ).integrateChild (child2 );
215- getAliasedStrategy (CONTEXT_VAR , interpreter ).integrateChild (child );
216-
217- assertThat (interpreter .getContext ().get (CONTEXT_VAR )).isInstanceOf (PyMap .class );
218- assertThat (
219- ((Map <String , Object >) interpreter .getContext ().get (CONTEXT_VAR )).get (child2Alias )
179+ (Map <String , Object >) (
180+ (DeferredValue ) result .getContext ().get (CONTEXT_VAR )
181+ ).getOriginalValue ()
182+ ).get (child2Alias )
220183 )
221184 .isInstanceOf (DeferredValue .class );
222185 assertThat (
223186 (
224187 (
225188 (Map <String , Object >) (
226189 (DeferredValue ) (
227- (Map <String , Object >) interpreter .getContext ().get (CONTEXT_VAR )
190+ (
191+ (Map <String , Object >) (
192+ (DeferredValue ) result .getContext ().get (CONTEXT_VAR )
193+ ).getOriginalValue ()
194+ )
228195 ).get (child2Alias )
229196 ).getOriginalValue ()
230197 ).get ("foo" )
@@ -233,7 +200,11 @@ public void itHandlesMultiLayerAliasedAndNullDeferred() {
233200 .isEqualTo ("foo val" );
234201
235202 assertThat (
236- (((Map <String , Object >) interpreter .getContext ().get (CONTEXT_VAR )).get ("bar" ))
203+ (
204+ (Map <String , Object >) (
205+ (DeferredValue ) result .getContext ().get (CONTEXT_VAR )
206+ ).getOriginalValue ()
207+ ).get ("bar" )
237208 )
238209 .isEqualTo ("bar val" );
239210 }
0 commit comments