public async Task should_handle_the_initial_state() { var harness = new InMemoryTestHarness(); _machine = new InvestigationStateMachine(new List <Provider>()); StateMachineSagaTestHarness <Investigation, InvestigationStateMachine> saga = harness.StateMachineSaga <Investigation, InvestigationStateMachine>(_machine); await harness.Start(); var searchRequestedEvent = SearchRequested.Create(new PeopleSearchRequest("test", "test", "test")); try { await harness.InputQueueSendEndpoint.Send(searchRequestedEvent); Assert.IsTrue(harness.Consumed.Select <SearchRequested>().Any(), "Message not received"); Investigation instance = saga.Created.Select(x => x.CorrelationId == searchRequestedEvent.CorrelationId) .FirstOrDefault() ?.Saga; Assert.IsNotNull(instance, "Saga instance not found"); Assert.AreEqual(instance.CurrentState, nameof(_machine.Started)); } finally { await harness.Stop(); } }
public async Task <IActionResult> Search([FromBody] PeopleSearchRequest peopleSearchRequest) { var searchRequested = SearchRequested.Create(peopleSearchRequest); await this._busControl.Publish(searchRequested); return(Accepted(PeopleSearchResponse.Create(searchRequested.CorrelationId))); }
public void should_return_an_instence_of_InvestigatePerson() { var sut = SearchRequested.Create(new PeopleSearchRequest("test", "test", "test")); Assert.AreNotEqual(default(Guid), sut.CorrelationId); }