public async Task TrackedCommandBus_SendCommandAsyncPersistsChangesToContext() { var command = new FakeCommand(); var options = SetupContext(); using (var context = new InfrastructureContext(options)) { var sut = new TrackedCommandBus( Mock.Of <IServiceProvider>(), Mock.Of <IHttpContextAccessor>(), Mock.Of <IMessageSerializer>(), Mock.Of <ILogger>(), context); await sut.SendCommandAsync(command); } using (var context = new InfrastructureContext(options)) { var commandEntity = await context.Commands.FindAsync(command.MessageId); Assert.NotNull(commandEntity); Assert.Equal(command.MessageId, commandEntity.Id); } }
public void TrackedCommandBus_IsAssignableFromICommandBus() { var options = SetupContext(); using (var context = new InfrastructureContext(options)) { var sut = new TrackedCommandBus( Mock.Of <IServiceProvider>(), Mock.Of <IHttpContextAccessor>(), Mock.Of <IMessageSerializer>(), Mock.Of <ILogger>(), context); Assert.IsAssignableFrom <ICommandBus>(sut); } }
public async Task TrackedCommandBus_SendCommandAsyncInvokesSerializeOnIMessageSerializer() { var command = new FakeCommand(); var options = SetupContext(); using (var context = new InfrastructureContext(options)) { var mockSerializer = new Mock <IMessageSerializer>(); var sut = new TrackedCommandBus( Mock.Of <IServiceProvider>(), Mock.Of <IHttpContextAccessor>(), mockSerializer.Object, Mock.Of <ILogger>(), context); await sut.SendCommandAsync(command); mockSerializer.Verify(s => s.Serialize(command)); } }
public async Task TrackedCommandBus_SendCommandAsyncRetrievesHandlerFromServiceProvider() { var command = new FakeCommand(); var options = SetupContext(); var fakeHandler = Mock.Of <IHandler <FakeCommand> >(); var mockServiceProvider = new Mock <IServiceProvider>(); mockServiceProvider.Setup(m => m.GetService(typeof(IHandler <FakeCommand>))) .Returns(fakeHandler); using (var context = new InfrastructureContext(options)) { var sut = new TrackedCommandBus( Mock.Of <IServiceProvider>(), Mock.Of <IHttpContextAccessor>(), Mock.Of <IMessageSerializer>(), Mock.Of <ILogger>(), context); await sut.SendCommandAsync(command); } }