Пример #1
0
        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;
            }
        }
Пример #3
0
        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;
            }
        }