public Task CanSendCommand_WithAsyncHandler_ReturningResult() { MockCommandResult cmdResult = null; return(ContainerFixture.TestAsync(async fixture => { var testResult = await fixture.Arrange .Container(c => c.WithHostCommandConsumer()) .Act.OnServices(async s => { var messagingSrv = s.GetService <IMessagingService>(); var cmd = new MockCommand(); cmdResult = await messagingSrv.SendAsync(cmd); }); testResult.Assert.Services(s => { cmdResult.Should().NotBeNull(); cmdResult.Value.Should().Be("MOCK_VALUE"); var consumer = s.GetRequiredService <MockCommandConsumer>(); consumer.ExecutedHandlers.Should().HaveCount(1); consumer.ExecutedHandlers.Should().Contain("OnCommand"); }); })); }
public async Task <MockCommandResult> OnCommand(MockCommand evt) { AddCalledHandler(nameof(OnCommand)); var mockResponse = new MockCommandResult(); await Task.Run(() => { mockResponse.Value = "MOCK_VALUE"; }); return(mockResponse); }
public async Task Serialize_WithErrorsAsync() { var errors = new List <CommandError>(); errors.Add(await CreateFlurlHttpExceptionAsync().ConfigureAwait(false)); errors.Add(new NotSupportedException()); var result = new MockCommandResult() { Result = new MockCommandEntity(), Errors = errors }; var json = JsonConvert.SerializeObject(result); Assert.NotEmpty(json); }
public async Task Deserialize_WithExceptionErrorsAsync() { var errors = new List <CommandError>(); errors.Add(await CreateFlurlHttpExceptionAsync().ConfigureAwait(false)); errors.Add(new NotSupportedException()); var result1 = new MockCommandResult() { Result = new MockCommandEntity(), Errors = errors }; var json1 = JsonConvert.SerializeObject(result1); var result2 = JsonConvert.DeserializeObject <ICommandResult>(json1); var json2 = JsonConvert.SerializeObject(result2); Assert.Equal(json1, json2); }
public Task CommandWithResult_FromAsyncHandler() { MockCommandResult result = null; return(CommandConsumer.Test( async c => { c.Build(); var domainEventSrv = c.Services.Resolve <IMessagingService>(); var evt = new MockCommand(); var futureResult = domainEventSrv.PublishAsync(evt); result = await futureResult; }, (IAppContainer c) => { result.Should().NotBeNull(); result.Value.Should().Be("MOCK_VALUE"); var consumer = c.Services.Resolve <MockCommandConsumer>(); consumer.ExecutedHandlers.Should().HaveCount(1); consumer.ExecutedHandlers.Should().Contain("OnCommand"); })); }