public async Task Test_CreateJob_Should_PersistNewJob() { // arrange var message = new TestCreateJobMessage { JobId = NewId.NextGuid(), Type = "test-create-job", Namespace = "com.portauthority", Meta = new Dictionary <string, object>() { { "foo", "bar" }, { "baz", 1 }, { "zap", DateTime.UtcNow } } }; // act await _consumer.Consume(new TestConsumeContext <CreateJob>(message)); // assert var actual = DbContextFactory.Instance .CreateDbContext <PortAuthorityDbContext>() .Jobs.SingleOrDefault(j => j.JobId == message.JobId); actual.Should().NotBeNull(); actual.JobId.Should().Be(message.JobId); actual.Type.Should().Be(message.Type); actual.Namespace.Should().Be(message.Namespace); actual.Meta.Should().BeEquivalentTo(message.Meta); }
public async Task Test_CreateJobConsumer_Should_ConsumeMessage_And_CreateJob() { // arrange var consumerHarness = Consumer <CreateJobConsumer>(); var message = new TestCreateJobMessage() { JobId = NewId.NextGuid(), Type = "test-createjob", Namespace = "com.portauthority", Meta = new Dictionary <string, object>() { { "foo", "bar" }, { "baz", 1 }, { "zap", DateTime.UtcNow } } }; await Harness.Start(); try { // act await Harness.InputQueueSendEndpoint.Send <CreateJob>(message); // assert Assert.That(await Harness.Consumed.Any <CreateJob>(), "endpoint consumed message"); Assert.That(await consumerHarness.Consumed.Any <CreateJob>(), "actual consumer consumed the message"); Assert.That(await Harness.Published.Any <Fault <CreateJob> >(), Is.False, "message handled without fault"); var actual = GetDbContext().Jobs.SingleOrDefault(j => j.JobId == message.JobId); actual.Should().NotBeNull(); actual.JobId.Should().Be(message.JobId); actual.Type.Should().Be(message.Type); actual.Namespace.Should().Be(message.Namespace); actual.Meta.Should().BeEquivalentTo(message.Meta); } finally { await Harness.Stop(); } }