package com.fredhopper.server; import static com.google.common.truth.Truth.assertThat; import java.util.HashMap; import java.util.Map; import java.util.UUID; import org.eclipse.jetty.server.handler.ShutdownHandler; import org.junit.Before; import org.junit.Test; import com.fredhopper.environment.Environment; import com.google.common.base.StandardSystemProperty; public class HandlerCollectionLoaderTest { private Environment env; private Map<String, String> defaultEnv; @Before public void before() throws Exception { defaultEnv = new HashMap<>(); String name = UUID.randomUUID().toString(); defaultEnv.put(Environment.APPLICATION_NAME, name); defaultEnv.put(name + Environment.ROOT_SUFFIX, StandardSystemProperty.JAVA_IO_TMPDIR.value()); defaultEnv.put(name + Environment.SERVER_HOST_SUFFIX, "localhost"); defaultEnv.put(name + Environment.SERVER_PORT_SUFFIX, "7777"); env = Environment.createEnvironment(defaultEnv); } @Test public void createShutdownHandlerReturnsNullWithNoToken() throws Exception { HandlerCollectionLoader hcl = new HandlerCollectionLoader(); ShutdownHandler shutdownHandler = hcl.createShutdownHandler(env); assertThat(shutdownHandler).isNull(); } @Test public void createShutdownHandlerObserversShutdownTokenWhenPresent() throws Exception { HandlerCollectionLoader hcl = new HandlerCollectionLoader(); String token = UUID.randomUUID().toString(); defaultEnv.put(Environment.SERVER_SHUTDOWN_TOKEN_KEY, token); env = Environment.createEnvironment(defaultEnv); ShutdownHandler shutdownHandler = hcl.createShutdownHandler(env); assertThat(shutdownHandler).isNotNull(); assertThat(shutdownHandler.getShutdownToken()).isEqualTo(token); } }