package org.jtwig.render.context;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
public class RenderContextTest {
@Test(expected = IllegalStateException.class)
public void endNoCurrent() throws Exception {
RenderContext.create().end(String.class);
}
@Test(expected = IllegalStateException.class)
public void getCurrentNoCurrent() throws Exception {
RenderContext.create().getCurrent(String.class);
}
@Test
public void hasCurrentNoKey() throws Exception {
assertFalse(RenderContext.create().hasCurrent(String.class));
}
@Test
public void hasCurrentNoValue() throws Exception {
RenderContext context = RenderContext.create();
context.start(String.class, "asd").end(String.class);
assertFalse(context.hasCurrent(String.class));
}
@Test
public void hasCurrentValue() throws Exception {
RenderContext context = RenderContext.create();
context.start(String.class, "asd");
assertTrue(context.hasCurrent(String.class));
}
@Test
public void endOfCurrent() throws Exception {
RenderContext context = RenderContext.create();
Runnable runnable = mock(Runnable.class);
context.start(String.class, "test");
context.onEndCurrent(String.class, runnable);
context.end(String.class);
verify(runnable).run();
}
}