public void Only_Retrieve_Distributions_Once() { var cloudfrontClient = new Mock<AmazonCloudFront>(); var distributionId = Guid.NewGuid().ToString(); var bucket = Guid.NewGuid().ToString(); var distribution = bucket + ".s3.amazonaws.com"; var key = Guid.NewGuid().ToString(); var listDistributionsResponse = new ListDistributionsResponse(); listDistributionsResponse.Distribution.Add(new CloudFrontDistribution { Id = distributionId, DistributionConfig = new CloudFrontDistributionConfig { S3Origin = new S3Origin(distribution, null) } }); cloudfrontClient.Setup(cfc => cfc.ListDistributions()) .Returns(listDistributionsResponse); var invalidator = new CloudFrontInvalidator(cloudfrontClient.Object); invalidator.InvalidateObject(bucket, key); invalidator.InvalidateObject(bucket, key); cloudfrontClient.Verify(cfc => cfc.PostInvalidation(It.Is<PostInvalidationRequest>(pir => pir.DistributionId == distributionId && pir.InvalidationBatch.Paths.Count == 1 && pir.InvalidationBatch.Paths.First() == key)), Times.Exactly(2)); cloudfrontClient.Verify(cfc => cfc.ListDistributions(), Times.Once()); }
public void Only_Retrieve_Distributions_Once() { var cloudfrontClient = new Mock <AmazonCloudFront>(); var distributionId = Guid.NewGuid().ToString(); var bucket = Guid.NewGuid().ToString(); var distribution = bucket + ".s3.amazonaws.com"; var key = Guid.NewGuid().ToString(); var listDistributionsResponse = new ListDistributionsResponse(); listDistributionsResponse.Distribution.Add(new CloudFrontDistribution { Id = distributionId, DistributionConfig = new CloudFrontDistributionConfig { S3Origin = new S3Origin(distribution, null) } }); cloudfrontClient.Setup(cfc => cfc.ListDistributions()) .Returns(listDistributionsResponse); var invalidator = new CloudFrontInvalidator(cloudfrontClient.Object); invalidator.InvalidateObject(bucket, key); invalidator.InvalidateObject(bucket, key); cloudfrontClient.Verify(cfc => cfc.PostInvalidation(It.Is <PostInvalidationRequest>(pir => pir.DistributionId == distributionId && pir.InvalidationBatch.Paths.Count == 1 && pir.InvalidationBatch.Paths.First() == key)), Times.Exactly(2)); cloudfrontClient.Verify(cfc => cfc.ListDistributions(), Times.Once()); }
public void Invalidate() { var cloudfrontClient = new Mock<IAmazonCloudFront>(); var distributionId = Guid.NewGuid().ToString(); var bucket = Guid.NewGuid().ToString(); var distribution = bucket + ".s3.amazonaws.com"; var key = Guid.NewGuid().ToString(); var key2 = Guid.NewGuid().ToString(); var listDistributionsResponse = new ListDistributionsResponse() { DistributionList = new DistributionList() { Items = new List<DistributionSummary> { new DistributionSummary { Id = distributionId, DomainName = distribution, Origins = new Origins { Quantity = 1, Items = new List<Origin> { new Origin { DomainName = distribution } } } } } } }; cloudfrontClient.Setup(cfc => cfc.ListDistributions()) .Returns(listDistributionsResponse); var invalidator = new CloudFrontInvalidator(cloudfrontClient.Object); invalidator.InvalidateObject(bucket, key); cloudfrontClient.Verify(cfc => cfc.CreateInvalidation(It.IsAny<CreateInvalidationRequest>()), Times.Never()); invalidator.InvalidateObject(bucket, key2); cloudfrontClient.Verify(cfc => cfc.CreateInvalidation(It.IsAny<CreateInvalidationRequest>()), Times.Never()); invalidator.Flush(); cloudfrontClient.Verify(cfc => cfc.CreateInvalidation(It.Is<CreateInvalidationRequest>(pir => pir.DistributionId == distributionId && pir.InvalidationBatch.Paths.Quantity == 1 && pir.InvalidationBatch.Paths.Items.First() == "/" + key && pir.InvalidationBatch.Paths.Items.Skip(1).First() == "/" + key2))); }
public void Only_Retrieve_Distributions_Once() { var cloudfrontClient = new Mock<IAmazonCloudFront>(); var distributionId = Guid.NewGuid().ToString(); var bucket = Guid.NewGuid().ToString(); var distribution = bucket + ".s3.amazonaws.com"; var key = "/" + Guid.NewGuid().ToString(); var listDistributionsResponse = new ListDistributionsResponse() { DistributionList = new DistributionList() { Items = new List<DistributionSummary> { new DistributionSummary { Id = distributionId, DomainName = distribution, Origins = new Origins { Quantity = 1, Items = new List<Origin> { new Origin { DomainName = distribution } } } } } } }; cloudfrontClient.Setup(cfc => cfc.ListDistributions()) .Returns(listDistributionsResponse); var invalidator = new CloudFrontInvalidator(cloudfrontClient.Object); invalidator.InvalidateObject(bucket, key); invalidator.InvalidateObject(bucket, key); cloudfrontClient.Verify(cfc => cfc.ListDistributions(), Times.Once()); }