private ServerStartStopResult StartInternal(ushort port) { try { string buildPath = $"{Build.Path}/{Build.ExecutableName}.dmb"; var startParams = new DreamDaemonArguments(buildPath, port); var dreamDaemon = _byond.StartDreamDaemon(startParams); _dreamDaemonProcess = dreamDaemon; _dreamDaemonProcess.UnexpectedExit += HandleUnexpectedExit; Status.Port = port; return(new ServerStartStopResult() { Message = "Started server.", Id = Build.Id, Port = port }); } catch (Exception ex) { _logger.LogError(ex, $"Error starting server. Id: {Build.Id}"); return(new ServerStartStopResult() { Error = true, ErrorMessage = $"Failed to start server. Exception: \"{ex.Message}\"", Id = Build.Id }); } }
public void StartServer_CorrectStart_CallsByondWithCorrectPath() { var build = _fixture .Build <BuildModel>() .With(x => x.Path, "/testdir/build") .With(x => x.ExecutableName, "testExec").Create(); DreamDaemonArguments args = null; _byondMock.Setup(x => x.StartDreamDaemon(It.IsAny <DreamDaemonArguments>())) .Callback <DreamDaemonArguments>(x => args = x); var instance = CreateServerInstance(build); instance.Start(1234); Assert.NotNull(args); Assert.Equal("/testdir/build/testExec.dmb", args.ExecutablePath); Assert.Equal(1234, args.Port); }