private void VerifyCosmosDBAccount(DatabaseAccountResource databaseAccount, DatabaseAccountPatch parameters)
 {
     Assert.True(databaseAccount.Data.Tags.SequenceEqual(parameters.Tags));
     Assert.AreEqual(databaseAccount.Data.IsVirtualNetworkFilterEnabled, parameters.IsVirtualNetworkFilterEnabled);
     Assert.AreEqual(databaseAccount.Data.EnableAutomaticFailover, parameters.EnableAutomaticFailover);
     Assert.AreEqual(databaseAccount.Data.DisableKeyBasedMetadataWriteAccess, parameters.DisableKeyBasedMetadataWriteAccess);
 }
        public async Task DatabaseAccountCreateAndUpdateTest()
        {
            var account = await CreateDatabaseAccount(Recording.GenerateAssetName("dbaccount-"), DatabaseAccountKind.MongoDB);

            bool ifExists = await DatabaseAccountCollection.ExistsAsync(_databaseAccountName);

            Assert.AreEqual(true, ifExists);

            DatabaseAccountResource account2 = await DatabaseAccountCollection.GetAsync(_databaseAccountName);

            VerifyCosmosDBAccount(account, account2);

            var updateOptions = new DatabaseAccountPatch()
            {
                IsVirtualNetworkFilterEnabled      = false,
                EnableAutomaticFailover            = true,
                DisableKeyBasedMetadataWriteAccess = true,
            };

            updateOptions.Tags.Add("key3", "value3");
            updateOptions.Tags.Add("key4", "value4");
            await account2.UpdateAsync(WaitUntil.Completed, updateOptions);

            var failoverPolicyList = new List <FailoverPolicy>
            {
                new FailoverPolicy()
                {
                    LocationName     = AzureLocation.WestUS,
                    FailoverPriority = 0
                }
            };
            FailoverPolicies failoverPolicies = new FailoverPolicies(failoverPolicyList);
            await account2.FailoverPriorityChangeAsync(WaitUntil.Completed, failoverPolicies);

            DatabaseAccountResource account3 = await DatabaseAccountCollection.GetAsync(_databaseAccountName);

            VerifyCosmosDBAccount(account3, updateOptions);
            VerifyFailoverPolicies(failoverPolicyList, account3.Data.FailoverPolicies);
        }