Пример #1
0
        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
                });
            }
        }
Пример #2
0
        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);
        }