package com.orientechnologies.orient.server; import com.orientechnologies.common.exception.OException; import com.orientechnologies.common.log.OLogManager; import com.orientechnologies.orient.core.Orient; import com.orientechnologies.orient.core.config.OGlobalConfiguration; import com.orientechnologies.orient.server.config.OServerConfiguration; import com.orientechnologies.orient.server.config.OServerHandlerConfiguration; import com.orientechnologies.orient.server.config.OServerParameterConfiguration; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import java.util.logging.Level; import static org.assertj.core.api.Assertions.assertThat; /** * Created by frank on 21/01/2016. */ public class OServerTest { private String prevPassword; private String prevOrientHome; private boolean allowJvmShutdownPrev; private OServer server; private OServerConfiguration conf; @Before public void setUp() throws Exception { OLogManager.instance().setConsoleLevel(Level.OFF.getName()); prevPassword = System.setProperty("ORIENTDB_ROOT_PASSWORD", "rootPassword"); prevOrientHome = System.setProperty("ORIENTDB_HOME", "./target/testhome"); allowJvmShutdownPrev = OGlobalConfiguration.ENVIRONMENT_ALLOW_JVM_SHUTDOWN.getValueAsBoolean(); OGlobalConfiguration.ENVIRONMENT_ALLOW_JVM_SHUTDOWN.setValue(false); conf = new OServerConfiguration(); conf.handlers = new ArrayList<OServerHandlerConfiguration>(); OServerHandlerConfiguration handlerConfiguration = new OServerHandlerConfiguration(); handlerConfiguration.clazz = OServerFailingOnStarupPluginStub.class.getName(); handlerConfiguration.parameters = new OServerParameterConfiguration[0]; conf.handlers.add(0, handlerConfiguration); } @After public void tearDown() throws Exception { if (server.isActive()) server.shutdown(); // invariants OGlobalConfiguration.ENVIRONMENT_ALLOW_JVM_SHUTDOWN.setValue(allowJvmShutdownPrev); if (prevOrientHome != null) System.setProperty("ORIENTDB_HOME", prevOrientHome); if (prevPassword != null) System.setProperty("ORIENTDB_ROOT_PASSWORD", prevPassword); Orient.instance().startup(); } @Test public void shouldShutdownOnPluginStartupException() { try { server = new OServer(true); server.startup(conf); server.activate(); } catch (Exception e) { assertThat(e).isInstanceOf(OException.class); } assertThat(server.isActive()).isFalse(); } }