Skip to content

Commit

Permalink
fix: loading the NeonBee configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
halber committed May 12, 2022
1 parent f263eac commit 649b54c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/io/neonbee/Launcher.java
Expand Up @@ -59,7 +59,7 @@ public static void startNeonBee(NeonBeeOptions options) {
configureLogging(options);

Vertx launcherVertx = Vertx.vertx();
Future.succeededFuture().compose(unused -> NeonBeeConfig.load(launcherVertx, options.getWorkingDirectory()))
Future.succeededFuture().compose(unused -> NeonBeeConfig.load(launcherVertx, options.getConfigDirectory()))
.eventually(unused -> closeVertx(launcherVertx)).compose(config -> NeonBee.create(options, config))
.onSuccess(neonBee -> Launcher.neonBee = neonBee).onFailure(throwable -> LoggerFactory
.getLogger(Launcher.class).error("Failed to start NeonBee", throwable));
Expand Down
20 changes: 20 additions & 0 deletions src/test/java/io/neonbee/LauncherTest.java
Expand Up @@ -2,13 +2,16 @@

import static com.google.common.truth.Truth.assertThat;
import static io.neonbee.Launcher.parseCommandLine;
import static io.neonbee.Launcher.startNeonBee;
import static io.neonbee.test.helper.FileSystemHelper.createTempDirectory;
import static io.neonbee.test.helper.SystemHelper.withEnvironment;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
Expand All @@ -23,11 +26,14 @@
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Isolated;
import org.mockito.MockedStatic;

import com.hazelcast.config.ClasspathXmlConfig;

import io.neonbee.Launcher.EnvironmentAwareCommandLine;
import io.neonbee.config.NeonBeeConfig;
import io.neonbee.test.helper.FileSystemHelper;
import io.vertx.core.Future;
import io.vertx.core.cli.Argument;
import io.vertx.core.cli.CLI;
import io.vertx.core.cli.CLIException;
Expand Down Expand Up @@ -192,6 +198,20 @@ void testEnvironmentAwareCommandLine() {
verify(commandLine).hasEnvArg(option);
}

@Test
void testStartNeonBeeConfigPath() {
NeonBeeOptions.Mutable options = new NeonBeeOptions.Mutable();
Path tempDirectory = Path.of("some", "test", "path").toAbsolutePath();
options.setWorkingDirectory(tempDirectory);

try (MockedStatic<NeonBeeConfig> staticNbc = mockStatic(NeonBeeConfig.class)) {
staticNbc.when(() -> NeonBeeConfig.load(any(), any()))
.thenReturn(Future.failedFuture("fail starting NeonBee"));
startNeonBee(options);
staticNbc.verify(() -> NeonBeeConfig.load(any(), eq(tempDirectory.resolve("config"))));
}
}

private void assertNeonBeeOptions() {
NeonBeeOptions neonBeeOptions = parseArgs();
assertThat(neonBeeOptions.getInstanceName()).isEqualTo("Hodor");
Expand Down

0 comments on commit 649b54c

Please sign in to comment.