//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.core.manager; import java.io.File; import java.net.URL; import java.util.Optional; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; import uk.gov.dstl.baleen.core.manager.BaleenManager.BaleenManagerListener; import uk.gov.dstl.baleen.core.metrics.MetricsFactory; import uk.gov.dstl.baleen.exceptions.BaleenException; /** * Basic test of baleen manager, */ public class BaleenManagerTest { @Before public void before() { // We need to clear the registry MetricsFactory.getInstance().removeAll(); } @Test public void testWithoutConfiguration() throws Exception { runAndStop(Optional.empty()); } @Test(expected = RuntimeException.class) public void testWithMissingConfiguration() throws BaleenException { URL resource = getClass().getResource("missing.yaml"); runAndStop(Optional.of(new File(resource.getFile()))); } @Test public void testWithConfiguration() throws BaleenException { URL resource = getClass().getResource("manager.yaml"); runAndStop(Optional.of(new File(resource.getFile()))); } private void runAndStop(Optional<File> configurationFile) throws BaleenException { BaleenManager manager = new BaleenManager(configurationFile); try { manager.run(new BaleenManagerListener() { @Override public void onStarted(BaleenManager manager) { // Do nothing assertNotNull(manager.getYaml()); } }); } finally { // Ensure stopped (even on assertion failure) manager.stop(); manager.shutdown(); } } }