internal static TemplateSpecVersionsListResult DeserializeTemplateSpecVersionsListResult(JsonElement element) { Optional <IReadOnlyList <TemplateSpecVersionData> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <TemplateSpecVersionData> array = new List <TemplateSpecVersionData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(TemplateSpecVersionData.DeserializeTemplateSpecVersionData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new TemplateSpecVersionsListResult(Optional.ToList(value), nextLink.Value)); }
public async Task Get() { string rgName = Recording.GenerateAssetName("testRg-3-"); ResourceGroupData rgData = new ResourceGroupData(Location.WestUS2); var lro = await Client.DefaultSubscription.GetResourceGroups().CreateOrUpdateAsync(rgName, rgData); ResourceGroup rg = lro.Value; string templateSpecName = Recording.GenerateAssetName("templateSpec-G-"); TemplateSpecData templateSpecData = CreateTemplateSpecData(templateSpecName); TemplateSpec templateSpec = (await rg.GetTemplateSpecs().CreateOrUpdateAsync(templateSpecName, templateSpecData)).Value; const string version = "v1"; TemplateSpecVersionData templateSpecVersionData = CreateTemplateSpecVersionData(); TemplateSpecVersion templateSpecVersion = (await templateSpec.GetTemplateSpecVersions().CreateOrUpdateAsync(version, templateSpecVersionData)).Value; TemplateSpecVersion getTemplateSpecVersion = await templateSpec.GetTemplateSpecVersions().GetAsync(version); AssertValidTemplateSpecVersion(templateSpecVersion, getTemplateSpecVersion); Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await templateSpec.GetTemplateSpecVersions().GetAsync(null)); }
public async Task Delete() { string rgName = Recording.GenerateAssetName("testRg-1-"); ResourceGroupData rgData = new ResourceGroupData(Location.WestUS2); var lro = await Client.DefaultSubscription.GetResourceGroups().CreateOrUpdateAsync(rgName, rgData); ResourceGroup rg = lro.Value; string templateSpecName = Recording.GenerateAssetName("templateSpec-C-"); TemplateSpecData templateSpecData = CreateTemplateSpecData(templateSpecName); TemplateSpec templateSpec = (await rg.GetTemplateSpecs().CreateOrUpdateAsync(templateSpecName, templateSpecData)).Value; const string version = "v1"; TemplateSpecVersionData templateSpecVersionData = CreateTemplateSpecVersionData(); TemplateSpecVersion templateSpecVersion = (await templateSpec.GetTemplateSpecVersions().CreateOrUpdateAsync(version, templateSpecVersionData)).Value; await templateSpecVersion.DeleteAsync(); var ex = Assert.ThrowsAsync <RequestFailedException>(async() => await templateSpecVersion.GetAsync()); Assert.AreEqual(404, ex.Status); }
public async Task CreateOrUpdate() { Subscription subscription = await Client.GetDefaultSubscriptionAsync(); string rgName = Recording.GenerateAssetName("testRg-1-"); ResourceGroupData rgData = new ResourceGroupData(AzureLocation.WestUS2); var lro = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, rgName, rgData); ResourceGroup rg = lro.Value; string templateSpecName = Recording.GenerateAssetName("templateSpec-C-"); TemplateSpecData templateSpecData = CreateTemplateSpecData(templateSpecName); TemplateSpec templateSpec = (await rg.GetTemplateSpecs().CreateOrUpdateAsync(WaitUntil.Completed, templateSpecName, templateSpecData)).Value; const string version = "v1"; TemplateSpecVersionData templateSpecVersionData = CreateTemplateSpecVersionData(); TemplateSpecVersion templateSpecVersion = (await templateSpec.GetTemplateSpecVersions().CreateOrUpdateAsync(WaitUntil.Completed, version, templateSpecVersionData)).Value; Assert.AreEqual(version, templateSpecVersion.Data.Name); Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await rg.GetTemplateSpecs().CreateOrUpdateAsync(WaitUntil.Completed, null, templateSpecData)); Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await rg.GetTemplateSpecs().CreateOrUpdateAsync(WaitUntil.Completed, templateSpecName, null)); }
public async Task FindTemplateSpecByIdAsync_TemlateSpecFound_ReturnsTemplateSpec() { var data = new TemplateSpecVersionData("westus") { MainTemplate = "{}" }; var client = CreateMockClient( templateSpecVersionMock => templateSpecVersionMock .SetupGet(x => x.Data) .Returns(data), templateSpecVersionMock => templateSpecVersionMock .Setup(x => x.GetAsync(It.IsAny <CancellationToken>())) .ReturnsAsync(CreateMockResponse(templateSpecVersionMock.Object))); var repository = new TemplateSpecRepository(client); var templateSpec = await repository.FindTemplateSpecByIdAsync(TestTemplateSpecId); templateSpec.MainTemplate.ValueEquals("{}").Should().BeTrue(); }
public async Task List() { string rgName = Recording.GenerateAssetName("testRg-2-"); ResourceGroupData rgData = new ResourceGroupData(Location.WestUS2); var lro = await Client.DefaultSubscription.GetResourceGroups().CreateOrUpdateAsync(rgName, rgData); ResourceGroup rg = lro.Value; string templateSpecName = Recording.GenerateAssetName("templateSpec-L-"); TemplateSpecData templateSpecData = CreateTemplateSpecData(templateSpecName); TemplateSpec templateSpec = (await rg.GetTemplateSpecs().CreateOrUpdateAsync(templateSpecName, templateSpecData)).Value; const string version = "v1"; TemplateSpecVersionData templateSpecVersionData = CreateTemplateSpecVersionData(); _ = (await templateSpec.GetTemplateSpecVersions().CreateOrUpdateAsync(version, templateSpecVersionData)).Value; int count = 0; await foreach (var tempTemplateSpecVersion in templateSpec.GetTemplateSpecVersions().GetAllAsync()) { count++; } Assert.AreEqual(count, 1); }
public async Task FindTemplateSpecByIdAsync_TemlateSpecFound_ReturnsTemplateSpec() { var data = new TemplateSpecVersionData("westus"); var content = JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = true }); var templateSpecVersionResourceMock = CreateMockTemplateSpecVersionResource( mock => mock .Setup(x => x.GetAsync(It.IsAny <CancellationToken>())) .ReturnsAsync(CreateMockResponse(content))); var clientMock = CreateMockClient(templateSpecVersionResourceMock); var repository = new TemplateSpecRepository(clientMock); var templateSpec = await repository.FindTemplateSpecByIdAsync(TestTemplateSpecId); templateSpec.Content.ReplaceLineEndings().Should().Be(@"{ ""Location"": { ""Name"": ""westus"", ""DisplayName"": ""West US"" }, ""Tags"": {}, ""Description"": null, ""LinkedTemplates"": [], ""Metadata"": null, ""MainTemplate"": null, ""UiFormDefinition"": null, ""Id"": null, ""Name"": null, ""ResourceType"": { ""Namespace"": null, ""Type"": null }, ""SystemData"": null }".ReplaceLineEndings()); }
public static TemplateSpecEntity FromSdkModel(TemplateSpecVersionData model) => new(