public async Task ReturnsOkResultWhenProcessExitCodeIs0()
        {
            Mock <ILogger>          loggingMock   = new Mock <ILogger>();
            ProcessRunResult        processResult = CreateProcessRunResult(0);
            IExternalProcessManager externalProcessManagerMockObject = CreateExternalProcessManagerMock(processResult).Object;
            RunExternalProcess      runExternalProcessFunction       = CreateRunExternalProcess(externalProcessManagerMockObject);

            IActionResult result = await runExternalProcessFunction.Run(
                CreateHttpRequest(), loggingMock.Object,
                new ExecutionContext()
            {
                FunctionAppDirectory = testBaseDirectory
            });

            result.Should().BeOfType <OkObjectResult>();
            ((OkObjectResult)result).Value.Should().Be($"Success! Process output: {processResult.Output}");
        }
예제 #2
0
        private async Task ConvertAsync(string oggFile, string wavFile)
        {
            using var process = new Process();
            process.StartInfo.CreateNoWindow         = true;
            process.StartInfo.UseShellExecute        = false;
            process.StartInfo.FileName               = "CMD";
            process.StartInfo.WindowStyle            = ProcessWindowStyle.Hidden;
            process.StartInfo.Arguments              = $" /c .\\vgmstream\\test -o \"{wavFile}\" \"{oggFile}\"";
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError  = true;
            var output = await RunExternalProcess.LaunchAsync(process);

            var message = $"{Path.GetFileName(wavFile)} created.{output}";

            _sendMessageEvent.OnSendMessageEvent(new SendMessageEventArgs(message));
            _logger.LogInformation(message);
        }
        public async Task CallsInitialiseOnExternalProcessManagerWithExitCodeQueryStringParameter()
        {
            Mock <ILogger>   loggingMock   = new Mock <ILogger>();
            ProcessRunResult processResult = CreateProcessRunResult(new Random().Next(1, int.MaxValue));
            Mock <IExternalProcessManager> externalProcessManagerMock       = CreateExternalProcessManagerMock(processResult);
            IExternalProcessManager        externalProcessManagerMockObject = externalProcessManagerMock.Object;
            string             expectedExitCode           = "testExitCode";
            RunExternalProcess runExternalProcessFunction = CreateRunExternalProcess(externalProcessManagerMockObject);

            IActionResult result = await runExternalProcessFunction.Run(
                CreateHttpRequest(expectedExitCode), loggingMock.Object,
                new ExecutionContext()
            {
                FunctionAppDirectory = testBaseDirectory
            });

            externalProcessManagerMock.Verify(mock => mock.Initialize(testBaseDirectory, expectedExitCode, true));
        }
        public async Task ReturnsErrorResultWhenProcessExitCodeIsNot0()
        {
            Mock <ILogger>          loggingMock   = new Mock <ILogger>();
            ProcessRunResult        processResult = CreateProcessRunResult(new Random().Next(1, int.MaxValue));
            IExternalProcessManager externalProcessManagerMockObject = CreateExternalProcessManagerMock(processResult).Object;
            RunExternalProcess      runExternalProcessFunction       = CreateRunExternalProcess(externalProcessManagerMockObject);

            IActionResult result = await runExternalProcessFunction.Run(
                CreateHttpRequest(), loggingMock.Object,
                new ExecutionContext()
            {
                FunctionAppDirectory = testBaseDirectory
            });

            result.Should().BeOfType <ObjectResult>();
            ObjectResult objectResult = (ObjectResult)result;

            objectResult.Value.Should().Be($"Fail! Process error: {processResult.Error}");
            objectResult.StatusCode.Should().Be((int)HttpStatusCode.InternalServerError);
        }
예제 #5
0
파일: Program.cs 프로젝트: thoemmi/ravendb
        private static void Main()
        {
            {
                var x = new DocumentStoreServerTests_DifferentProcess();
                x.Can_promote_transactions();
            }

            using (var x = new RunExternalProcess())
            {
                x.can_use_RavenDB_in_a_remote_process();
            }

            using (var x = new RunExternalProcess())
            {
                x.can_use_RavenDB_in_a_remote_process_for_batch_operations();
            }

            using (var x = new RunExternalProcess())
            {
                x.can_use_RavenDB_in_a_remote_process_to_post_batch_operations();
            }
        }