public async Task GetOrCreateNuixConnection_WhenScriptFileDoesNotExist_ReturnsError() { var fakeExternalProcess = new ExternalProcessMock( 1, ConnectionTestsHelper.GetCreateCaseAction() ); var fileMock = Mock.Of <IFile>(f => f.Exists(It.IsAny <string>()) == false); IStateMonad state = ConnectionTestsHelper.GetStateMonad( TestLoggerFactory.Create(), fakeExternalProcess, ConsoleAdapter.Instance ); //Remove the script from the file system var nuixFileSystem = state.ExternalContext.TryGetContext <IFileSystem>(ConnectorInjection.FileSystemKey); nuixFileSystem.Value.File.Delete(NuixConnectionHelper.NuixGeneralScriptName); var connection = await state.GetOrCreateNuixConnection(null, false); Assert.True(connection.IsFailure); Assert.Matches( $"Could not find.+{NuixConnectionHelper.NuixGeneralScriptName}'", connection.Error.AsString ); }
public async Task CloseNuixConnectionAsync_WhenNoConnectionExists_DoesNothing() { var fakeExternalProcess = new ExternalProcessMock( 1, ConnectionTestsHelper.GetCreateCaseAction() ); IStateMonad state = ConnectionTestsHelper.GetStateMonad( fakeExternalProcess, TestLoggerFactory.Create() ); var ct = new CancellationToken(); var actual = await state.CloseNuixConnectionAsync(null, ct); Assert.True(actual.IsSuccess); Assert.Equal(Unit.Default, actual); }
public async Task SendDoneCommand_WritesDoneToExternalProcess() { var logFactory = TestLoggerFactory.Create(); var action = ConnectionTestsHelper.GetDoneAction(); var nuixConnection = ConnectionTestsHelper.GetNuixConnection(logFactory, action); var fakeExternalProcess = new ExternalProcessMock( 1, ConnectionTestsHelper.GetCreateCaseAction() ); var state = ConnectionTestsHelper.GetStateMonad( fakeExternalProcess, logFactory ); var ct = new CancellationToken(); await nuixConnection.SendDoneCommand(state, null, ct); logFactory.Sink.LogEntries.Should() .Contain(x => x.Message != null && x.Message.Equals("Finished")); }
public async Task GetOrCreateNuixConnection_OnStartExternalProcessFailure_ReturnsError() { var fakeExternalProcess = new ExternalProcessMock(1, ConnectionTestsHelper.GetCreateCaseAction()) { ProcessPath = "WrongPath", ValidateArguments = false }; var loggerFactory = TestLoggerFactory.Create(); IStateMonad state = ConnectionTestsHelper.GetStateMonad( fakeExternalProcess, loggerFactory ); var createConnection = await state.GetOrCreateNuixConnection(null, true); createConnection.ShouldBeFailure(); createConnection.Error.AsString.Should() .Be($"External Process Failed: 'Could not start '{Constants.NuixConsoleExe}''"); }