package org.jooby.rocker;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.util.Map;
import org.jooby.test.MockUnit;
import org.junit.Test;
import com.fizzed.rocker.RenderingException;
import com.fizzed.rocker.RockerModel;
import com.fizzed.rocker.RockerTemplate;
import com.fizzed.rocker.runtime.DefaultRockerTemplate;
import com.google.common.collect.ImmutableMap;
public class RequestRockerTemplateTest {
@Test
public void setLocals() throws Exception {
new MockUnit(RockerTemplate.class, RockerModel.class)
.run(unit -> {
RequestRockerTemplate ctx = template(unit.get(RockerModel.class));
Map<String, Object> locals = ImmutableMap.of();
ctx.locals = locals;
RequestRockerTemplate template = template(unit.get(RockerModel.class));
template.__associate(ctx);
assertEquals(ctx.locals, template.locals);
});
}
@Test(expected = NullPointerException.class)
public void shouldCallSuperAssociate() throws Exception {
new MockUnit(DefaultRockerTemplate.class, RockerModel.class)
.run(unit -> {
DefaultRockerTemplate ctx = unit.get(DefaultRockerTemplate.class);
RequestRockerTemplate template = template(unit.get(RockerModel.class));
template.__associate(ctx);
});
}
private RequestRockerTemplate template(final RockerModel model) {
return new RequestRockerTemplate(model) {
@Override
protected void __doRender() throws IOException, RenderingException {
}
};
}
}