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 RunFunctionAsync_WithTwoEntityStreamParameters_ReturnsError() { var logFactory = TestLoggerFactory.Create(); var action = ConnectionTestsHelper.GetDoneAction(); var nuixConnection = ConnectionTestsHelper.GetNuixConnection(logFactory, action); var ct = new CancellationToken(); var stream1 = new List <Entity>().ToAsyncEnumerable().ToSCLArray(); var stream2 = new List <Entity>().ToAsyncEnumerable().ToSCLArray(); var dict = new Dictionary <RubyFunctionParameter, object> { { new RubyFunctionParameter("stream1Arg", "Stream1", false), stream1 }, { new RubyFunctionParameter("stream2Arg", "Stream2", false), stream2 } }; var stepParams = new ReadOnlyDictionary <RubyFunctionParameter, object>(dict); var step = new FakeNuixTwoStreamFunction(); var result = await nuixConnection.RunFunctionAsync( ConnectionTestsHelper.GetStateMonadForProcess(logFactory), null, step.RubyScriptStepFactory.RubyFunction, stepParams, CasePathParameter.IgnoresOpenCase.Instance, ct ); Assert.True(result.IsFailure); Assert.Equal( "A nuix function cannot have more than one Entity Array parameter.", result.Error.AsString ); }
public async Task CloseNuixConnectionAsync_ErrorOnClose_ReturnsError() { var state = ConnectionTestsHelper.GetStateMonadWithConnection( TestLoggerFactory.Create(), ConnectionTestsHelper.GetDoneAction() ); var ct = new CancellationToken(); var originalConnection = state.GetVariable <NuixConnection>(NuixConnectionHelper.NuixVariableName); Assert.True(originalConnection.IsSuccess); originalConnection.Value.Dispose(); var actual = await state.CloseNuixConnectionAsync(null, ct); Assert.True(actual.IsFailure); Assert.Matches( $"Cannot access a disposed object\\.\\s+Object name: '{nameof(NuixConnection)}'", actual.Error.AsString ); }