public async Task CreateAServiceOnAkamai_UsingDefaults() { Trace.WriteLine("Looking for a CDN flavor provided by Akamai..."); var flavors = await _cdnService.ListFlavorsAsync(); var flavor = flavors.FirstOrDefault(x => x.Providers.Any(p => string.Equals(p.Name, "Akamai", StringComparison.OrdinalIgnoreCase))); Assert.NotNull(flavor); var akamaiFlavor = flavor.Id; Trace.WriteLine(string.Format("Found the {0} flavor", akamaiFlavor)); Trace.WriteLine("Creating a CDN service using defaults for anything I can omit..."); var domains = new[] {new ServiceDomain("mirror.example.com")}; var origins = new[] {new ServiceOrigin("example.com")}; var serviceDefinition = new ServiceDefinition("ci-test", akamaiFlavor, domains, origins); var serviceId = await _cdnService.CreateServiceAsync(serviceDefinition); Trace.WriteLine(string.Format("Service was created: {0}", serviceId)); try { Trace.WriteLine("Waiting for the service to be deployed..."); var service = await _cdnService.WaitForServiceDeployedAsync(serviceId, progress: new Progress<bool>(x => Trace.WriteLine("..."))); Trace.WriteLine("Verifying service matches the requested definition..."); Assert.Equal("ci-test", service.Name); Assert.Equal(serviceDefinition.FlavorId, service.FlavorId); Assert.Equal(serviceDefinition.Origins.Count, service.Origins.Count()); Assert.Equal(serviceDefinition.Origins.First().Origin, service.Origins.First().Origin); Assert.Equal(serviceDefinition.Domains.Count, service.Domains.Count()); Assert.Equal(serviceDefinition.Domains.First().Domain, service.Domains.First().Domain); Trace.WriteLine("Updating the service..."); var patch = new JsonPatchDocument<ServiceDefinition>(); patch.Replace(x => x.Name, "ci-test2"); var intranetOnly = new ServiceRestriction("intranet", new[] {new ServiceRestrictionRule("intranet", "intranet.example.com")}); patch.Add(x => x.Restrictions, intranetOnly, 0); await _cdnService.UpdateServiceAsync(serviceId, patch); Trace.WriteLine("Waiting for the service changes to be deployed..."); service = await _cdnService.WaitForServiceDeployedAsync(serviceId, progress: new Progress<bool>(x => Trace.WriteLine("..."))); Trace.WriteLine("Verifying service matches updated definition..."); Assert.Equal("ci-test2", service.Name); Assert.Equal(JsonConvert.SerializeObject(intranetOnly), JsonConvert.SerializeObject(service.Restrictions.First())); Trace.WriteLine("Purging all assets on service"); await _cdnService.PurgeCachedAssetsAsync(serviceId); } finally { Trace.WriteLine("Cleaning up any test data..."); Trace.WriteLine("Removing the service..."); _cdnService.DeleteService(serviceId); _cdnService.WaitForServiceDeleted(serviceId); Trace.WriteLine("The service was cleaned up sucessfully."); } }
public async Task CreateAServiceOnAkamai_UsingDefaults() { Trace.WriteLine("Looking for a CDN flavor provided by Akamai..."); var flavors = await _cdnService.ListFlavorsAsync(); var flavor = flavors.FirstOrDefault(x => x.Providers.Any(p => string.Equals(p.Name, "Akamai", StringComparison.OrdinalIgnoreCase))); Assert.NotNull(flavor); var akamaiFlavor = flavor.Id; Trace.WriteLine(string.Format("Found the {0} flavor", akamaiFlavor)); Trace.WriteLine("Creating a CDN service using defaults for anything I can omit..."); var domains = new[] { new ServiceDomain("mirror.example.com") }; var origins = new[] { new ServiceOrigin("example.com") }; var serviceDefinition = new ServiceDefinition("ci-test", akamaiFlavor, domains, origins); var serviceId = await _cdnService.CreateServiceAsync(serviceDefinition); Trace.WriteLine(string.Format("Service was created: {0}", serviceId)); try { Trace.WriteLine("Waiting for the service to be deployed..."); var service = await _cdnService.WaitForServiceDeployedAsync(serviceId, progress : new Progress <bool>(x => Trace.WriteLine("..."))); Trace.WriteLine("Verifying service matches the requested definition..."); Assert.Equal("ci-test", service.Name); Assert.Equal(serviceDefinition.FlavorId, service.FlavorId); Assert.Equal(serviceDefinition.Origins.Count, service.Origins.Count()); Assert.Equal(serviceDefinition.Origins.First().Origin, service.Origins.First().Origin); Assert.Equal(serviceDefinition.Domains.Count, service.Domains.Count()); Assert.Equal(serviceDefinition.Domains.First().Domain, service.Domains.First().Domain); Trace.WriteLine("Updating the service..."); var patch = new JsonPatchDocument <ServiceDefinition>(); patch.Replace(x => x.Name, "ci-test2"); var intranetOnly = new ServiceRestriction("intranet", new[] { new ServiceRestrictionRule("intranet", "intranet.example.com") }); patch.Add(x => x.Restrictions, intranetOnly, 0); await _cdnService.UpdateServiceAsync(serviceId, patch); Trace.WriteLine("Waiting for the service changes to be deployed..."); service = await _cdnService.WaitForServiceDeployedAsync(serviceId, progress : new Progress <bool>(x => Trace.WriteLine("..."))); Trace.WriteLine("Verifying service matches updated definition..."); Assert.Equal("ci-test2", service.Name); Assert.Equal(JsonConvert.SerializeObject(intranetOnly), JsonConvert.SerializeObject(service.Restrictions.First())); Trace.WriteLine("Purging all assets on service"); await _cdnService.PurgeCachedAssetsAsync(serviceId); } finally { Trace.WriteLine("Cleaning up any test data..."); Trace.WriteLine("Removing the service..."); _cdnService.DeleteService(serviceId); _cdnService.WaitForServiceDeleted(serviceId); Trace.WriteLine("The service was cleaned up sucessfully."); } }