private static void UnmarshallResult(XmlUnmarshallerContext context,ListDistributionsResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; while (context.Read()) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("DistributionList", targetDepth)) { response.DistributionList = DistributionListUnmarshaller.GetInstance().Unmarshall(context); continue; } } else if (context.IsEndElement && context.CurrentDepth < originalDepth) { return; } } return; }
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()); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { ListDistributionsResponse response = new ListDistributionsResponse(); UnmarshallResult(context,response); return response; }
public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { ListDistributionsResponse response = new ListDistributionsResponse(); response.ListDistributionsResult = ListDistributionsResultUnmarshaller.GetInstance().Unmarshall(context); return response; }
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()); }