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));
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }
示例#4
0
        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();
        }
示例#6
0
        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);
        }
示例#7
0
        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());
        }
示例#8
0
 public static TemplateSpecEntity FromSdkModel(TemplateSpecVersionData model) => new(