public async Task ThenThePersonCreatedEventIsRaised(ISnsFixture snsFixture) { var responseContent = await _lastResponse.Content.ReadAsStringAsync().ConfigureAwait(false); var apiPerson = JsonSerializer.Deserialize <PersonResponseObject>(responseContent, CreateJsonOptions()); Action <PersonSns> verifyFunc = (actual) => { actual.CorrelationId.Should().NotBeEmpty(); actual.DateTime.Should().BeCloseTo(DateTime.UtcNow, 1000); actual.EntityId.Should().Be(apiPerson.Id); var newData = JsonSerializer.Deserialize <Person>(responseContent, CreateJsonOptions()); var newDataAsResponse = new ResponseFactory(null).ToResponse(newData); newDataAsResponse.Should().BeEquivalentTo(apiPerson, c => c.Excluding(y => y.Links)); actual.EventType.Should().Be(CreateEventConstants.EVENTTYPE); actual.Id.Should().NotBeEmpty(); actual.SourceDomain.Should().Be(CreateEventConstants.SOURCEDOMAIN); actual.SourceSystem.Should().Be(CreateEventConstants.SOURCESYSTEM); actual.User.Email.Should().Be("*****@*****.**"); actual.User.Name.Should().Be("Tester"); actual.Version.Should().Be(CreateEventConstants.V1VERSION); }; var snsVerifer = snsFixture.GetSnsEventVerifier <PersonSns>(); var snsResult = await snsVerifer.VerifySnsEventRaised(verifyFunc); if (!snsResult && snsVerifer.LastException != null) { throw snsVerifer.LastException; } }
public async Task ThenTheContactDetailsDeletedEventIsRaised(ContactDetailsFixture contactDetailsFixture, ISnsFixture snsFixture) { var deletedRecord = contactDetailsFixture.Contacts.First(); Action <ContactDetailsSns> verifyFunc = (actual) => { actual.CorrelationId.Should().NotBeEmpty(); actual.DateTime.Should().BeCloseTo(DateTime.UtcNow, 1000); actual.EntityId.Should().Be(deletedRecord.TargetId); actual.EventData.OldData.ContactType.Should().Be((int)deletedRecord.ContactInformation.ContactType); actual.EventData.OldData.Description.Should().Be(deletedRecord.ContactInformation.Description); actual.EventData.OldData.Id.Should().Be(deletedRecord.Id); actual.EventData.OldData.Value.Should().Be(deletedRecord.ContactInformation.Value); actual.EventData.NewData.Should().BeEquivalentTo(new DataItem()); actual.EventType.Should().Be(EventConstants.DELETED); actual.Id.Should().NotBeEmpty(); actual.SourceDomain.Should().Be(EventConstants.SOURCEDOMAIN); actual.SourceSystem.Should().Be(EventConstants.SOURCESYSTEM); actual.User.Email.Should().Be("*****@*****.**"); actual.User.Name.Should().Be("Tester"); actual.Version.Should().Be(EventConstants.V1VERSION); }; var snsVerifer = snsFixture.GetSnsEventVerifier <ContactDetailsSns>(); var snsResult = await snsVerifer.VerifySnsEventRaised(verifyFunc); if (!snsResult && snsVerifer.LastException != null) { throw snsVerifer.LastException; } }
public async Task ThenThePersonUpdatedEventIsRaised(PersonFixture personFixture, ISnsFixture snsFixture) { var dbPerson = await personFixture._dbContext.LoadAsync <PersonDbEntity>(personFixture.Person.Id).ConfigureAwait(false); Action <string, PersonDbEntity> verifyData = (dataAsString, person) => { var dataDic = JsonSerializer.Deserialize <Dictionary <string, object> >(dataAsString, CreateJsonOptions()); dataDic["title"].ToString().Should().Be(Enum.GetName(typeof(Title), person.Title.Value)); dataDic["firstName"].ToString().Should().Be(person.FirstName); dataDic["surname"].ToString().Should().Be(person.Surname); }; Action <PersonSns> verifyFunc = (actual) => { actual.CorrelationId.Should().NotBeEmpty(); actual.DateTime.Should().BeCloseTo(DateTime.UtcNow, 1000); actual.EntityId.Should().Be(personFixture.PersonId); verifyData(actual.EventData.OldData.ToString(), personFixture.Person); verifyData(actual.EventData.NewData.ToString(), dbPerson); actual.EventType.Should().Be(UpdatePersonConstants.EVENTTYPE); actual.Id.Should().NotBeEmpty(); actual.SourceDomain.Should().Be(UpdatePersonConstants.SOURCEDOMAIN); actual.SourceSystem.Should().Be(UpdatePersonConstants.SOURCESYSTEM); actual.User.Email.Should().Be("*****@*****.**"); actual.User.Name.Should().Be("Tester"); actual.Version.Should().Be(UpdatePersonConstants.V1VERSION); }; var snsVerifer = snsFixture.GetSnsEventVerifier <PersonSns>(); var snsResult = await snsVerifer.VerifySnsEventRaised(verifyFunc); if (!snsResult && snsVerifer.LastException != null) { throw snsVerifer.LastException; } }