package org.jtwig.environment;
import org.jtwig.environment.initializer.EnvironmentInitializer;
import org.jtwig.extension.Extension;
import org.junit.Test;
import java.util.concurrent.atomic.AtomicBoolean;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.jtwig.environment.EnvironmentConfigurationBuilder.configuration;
import static org.jtwig.support.MatcherUtils.theSame;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
public class EnvironmentFactoryTest {
private EnvironmentFactory underTest = new EnvironmentFactory();
@Test
public void createWithExtension() throws Exception {
Extension extension = mock(Extension.class);
EnvironmentConfigurationBuilder builder = configuration().extensions().add(extension).and();
underTest.create(builder.build());
verify(extension).configure(argThat(theSame(builder)));
}
@Test
public void initializersTest() throws Exception {
final AtomicBoolean atomicBoolean = new AtomicBoolean(false);
EnvironmentInitializer initializer = new EnvironmentInitializer() {
@Override
public void initialize(Environment environment) {
atomicBoolean.set(true);
}
};
EnvironmentConfiguration configuration = EnvironmentConfigurationBuilder
.configuration()
.initializers()
.add(initializer)
.and()
.build();
underTest.create(configuration);
assertThat(atomicBoolean.get(), is(true));
}
}