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}"); }
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); }
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(); } }