package eu.hurion.vaadin.heroku; import org.apache.catalina.Context; import org.testng.annotations.Test; import javax.servlet.ServletContextListener; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; public class VaadinForHerokuTest { private final VaadinForHeroku server = VaadinForHeroku.forApplication(TestApplication.class); @Test(expectedExceptions = IllegalArgumentException.class) public void nullApplication() { VaadinForHeroku.forApplication(null); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullStringApplicationListener() { final VaadinForHeroku server = VaadinForHeroku.forApplication(TestApplication.class); server.withApplicationListener(null, "fake listener", null); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullClassApplicationListener() { final VaadinForHeroku server = VaadinForHeroku.forApplication(TestApplication.class); server.withApplicationListener((Class<? extends ServletContextListener>) null); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullFilterDefinition() { final VaadinForHeroku server = VaadinForHeroku.forApplication(TestApplication.class); server.withFilterDefinition(null); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullFilterMapping() { final VaadinForHeroku server = VaadinForHeroku.forApplication(TestApplication.class); server.withFilterMapping(null); } @Test public void withApplicationListener() { final VaadinForHeroku withAppListener = server.withApplicationListener(MockApplicationListener.class); assertThat(withAppListener, equalTo(server)); } @Test public void withFilterDefinition() { final VaadinForHeroku withFilter = server.withFilterDefinition(FilterDefinitionBuilder.filterDefinition("testFilter")); assertThat(withFilter, equalTo(server)); } @Test public void withFilterMapping() { final VaadinForHeroku withFilterMapping = server.withFilterMapping(FilterMapBuilder.mapFilter("testFilter")); assertThat(withFilterMapping, equalTo(server)); } @Test public void buldServerWithoutSessionManager() { final VaadinForHeroku.EmbedVaadinWithSessionManagement built = server.build(); final Context contextForTest = built.getContextForTest(); assertThat(contextForTest.getManager(), nullValue()); } @Test public void buildServerWithSessionManager() { final VaadinForHeroku.EmbedVaadinWithSessionManagement built = server.withMemcachedSessionManager(MemcachedManagerBuilder.memcachedConfig()).build(); built.configure(); final Context contextForTest = built.getContextForTest(); assertThat(contextForTest.getManager(), notNullValue()); } }