internal static SchemaGroupListResult DeserializeSchemaGroupListResult(JsonElement element)
        {
            Optional <IReadOnlyList <SchemaGroupData> > 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 <SchemaGroupData> array = new List <SchemaGroupData>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(SchemaGroupData.DeserializeSchemaGroupData(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("nextLink"))
                {
                    nextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new SchemaGroupListResult(Optional.ToList(value), nextLink.Value));
        }
        public async Task CreateDeleteSchemaGroup()
        {
            //create schema group
            string          schemaGroupName = Recording.GenerateAssetName("schemagroup");
            SchemaGroupData parameters      = new SchemaGroupData()
            {
                SchemaType = SchemaType.Avro
            };
            SchemaGroup schemaGroup = (await _schemaGroupCollection.CreateOrUpdateAsync(true, schemaGroupName, parameters)).Value;

            Assert.NotNull(schemaGroup);
            Assert.AreEqual(schemaGroupName, schemaGroup.Id.Name);

            //validate if created successfully
            schemaGroup = await _schemaGroupCollection.GetIfExistsAsync(schemaGroupName);

            Assert.NotNull(schemaGroup);
            Assert.IsTrue(await _schemaGroupCollection.ExistsAsync(schemaGroupName));

            //delete eventhub
            await schemaGroup.DeleteAsync(true);

            //validate
            schemaGroup = await _schemaGroupCollection.GetIfExistsAsync(schemaGroupName);

            Assert.Null(schemaGroup);
            Assert.IsFalse(await _schemaGroupCollection.ExistsAsync(schemaGroupName));
        }
        public async Task CreateDeleteSchemaGroup()
        {
            //create schema group
            string          schemaGroupName = Recording.GenerateAssetName("schemagroup");
            SchemaGroupData parameters      = new SchemaGroupData()
            {
                SchemaType = SchemaType.Avro
            };
            SchemaGroupResource schemaGroup = (await _schemaGroupCollection.CreateOrUpdateAsync(WaitUntil.Completed, schemaGroupName, parameters)).Value;

            Assert.NotNull(schemaGroup);
            Assert.AreEqual(schemaGroupName, schemaGroup.Id.Name);

            //validate if created successfully
            Assert.IsTrue(await _schemaGroupCollection.ExistsAsync(schemaGroupName));
            schemaGroup = await _schemaGroupCollection.GetAsync(schemaGroupName);

            //delete eventhub
            await schemaGroup.DeleteAsync(WaitUntil.Completed);

            //validate
            var exception = Assert.ThrowsAsync <RequestFailedException>(async() => { await _schemaGroupCollection.GetAsync(schemaGroupName); });

            Assert.AreEqual(404, exception.Status);
            Assert.IsFalse(await _schemaGroupCollection.ExistsAsync(schemaGroupName));
        }
        public async Task GetAllSchemaGroups()
        {
            //create a schema group
            string          schemaGroupName1 = Recording.GenerateAssetName("schemagroup1");
            SchemaGroupData parameters       = new SchemaGroupData()
            {
                SchemaType = SchemaType.Avro
            };

            _ = (await _schemaGroupCollection.CreateOrUpdateAsync(true, schemaGroupName1, parameters)).Value;

            //validate
            int         count        = 0;
            SchemaGroup schemaGroup1 = null;

            await foreach (SchemaGroup schemaGroup in _schemaGroupCollection.GetAllAsync())
            {
                count++;
                if (schemaGroup.Id.Name == schemaGroupName1)
                {
                    schemaGroup1 = schemaGroup;
                }
            }
        }