Exemple #1
0
 public DeleteContactDetailsByTargetIdTests(MockWebApplicationFactory <Startup> appFactory)
 {
     _dbFixture             = appFactory.DynamoDbFixture;
     _snsFixture            = appFactory.SnsFixture;
     _contactDetailsFixture = new ContactDetailsFixture(_dbFixture.DynamoDbContext, _snsFixture.SimpleNotificationService);
     _steps = new DeleteContactDetailsSteps(appFactory.Client);
 }
Exemple #2
0
 public CreateContactTests(MockWebApplicationFactory <Startup> appFactory)
 {
     _dbFixture             = appFactory.DynamoDbFixture;
     _snsFixture            = appFactory.SnsFixture;
     _contactDetailsFixture = new ContactDetailsFixture(_dbFixture.DynamoDbContext);
     _steps = new CreateContactSteps(appFactory.Client);
 }
        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 ThenTheContactDetailsAreSavedAndReturned(ContactDetailsFixture fixture)
        {
            var expected  = fixture.ContactRequestObject;
            var apiResult = await ExtractResultFromHttpResponse(_lastResponse).ConfigureAwait(false);

            var resultAsDb = ResponseToDatabase(apiResult);

            fixture.Contacts.Add(resultAsDb);
            expected.Should().BeEquivalentTo(apiResult, config =>
            {
                return(config.Excluding(x => x.Id)
                       .Excluding(y => y.CreatedBy)
                       .Excluding(y => y.IsActive)
                       .Excluding(y => y.ContactInformation));
            });

            apiResult.Id.Should().NotBeEmpty();
            apiResult.IsActive.Should().BeTrue();
            apiResult.CreatedBy.Should().BeEquivalentTo(GetToken(Jwt).ToCreatedBy(), config => config.Excluding(x => x.CreatedAt));
            apiResult.CreatedBy.CreatedAt.Should().BeCloseTo(DateTime.UtcNow, 1000);

            var dbEntity = await fixture._dbContext.LoadAsync <ContactDetailsEntity>(apiResult.TargetId, apiResult.Id).ConfigureAwait(false);



            dbEntity.Should().BeEquivalentTo(resultAsDb, config => config.Excluding(x => x.LastModified));
            dbEntity.LastModified.Should().BeCloseTo(DateTime.UtcNow, 500);
        }
        public async Task ThenTheContactDetailsAreDeleted(ContactDetailsFixture contactDetailsFixture)
        {
            var result = await contactDetailsFixture._dbContext.LoadAsync <ContactDetailsEntity>(contactDetailsFixture.TargetId,
                                                                                                 contactDetailsFixture.Contacts.First().Id)
                         .ConfigureAwait(false);

            result.IsActive.Should().BeFalse();
            result.LastModified.Should().BeCloseTo(DateTime.UtcNow, 500);
        }
        public async Task TheMultilineAddressIsSavedInTheValueField(ContactDetailsFixture fixture)
        {
            var expected  = fixture.ContactRequestObject;
            var apiResult = await ExtractResultFromHttpResponse(_lastResponse).ConfigureAwait(false);

            var dbEntity = await fixture._dbContext.LoadAsync <ContactDetailsEntity>(apiResult.TargetId, apiResult.Id).ConfigureAwait(false);

            dbEntity.ContactInformation.ContactType.Should().Be(ContactType.address);

            // assert multiline address saved in value field
            dbEntity.ContactInformation.Value.Should().Contain(expected.ContactInformation.AddressExtended.AddressLine1);
            dbEntity.ContactInformation.Value.Should().Contain(expected.ContactInformation.AddressExtended.AddressLine2);
            dbEntity.ContactInformation.Value.Should().Contain(expected.ContactInformation.AddressExtended.AddressLine3);
            dbEntity.ContactInformation.Value.Should().Contain(expected.ContactInformation.AddressExtended.AddressLine4);
            dbEntity.ContactInformation.Value.Should().Contain(expected.ContactInformation.AddressExtended.PostCode);
        }
 public GetContactDetailsByTargetIdTests(MockWebApplicationFactory <Startup> appFactory)
 {
     _dbFixture             = appFactory.DynamoDbFixture;
     _contactDetailsFixture = new ContactDetailsFixture(_dbFixture.DynamoDbContext);
     _steps = new GetContactDetailsSteps(appFactory.Client);
 }