示例#1
0
        // Make sure availability sets across resource groups are listed successfully
        private async Task VerifyListAvailabilitySetsInSubscription()
        {
            string resourceGroup2Name           = baseResourceGroupName + "_2";
            string baseInputAvailabilitySetName = Recording.GenerateAssetName("asdefaultvalues");
            string availabilitySet1Name         = baseInputAvailabilitySetName + "_1";
            string availabilitySet2Name         = baseInputAvailabilitySetName + "_2";

            //try
            //{
            AvailabilitySet inputAvailabilitySet1 = new AvailabilitySet(TestEnvironment.Location)
            {
                Tags =
                {
                    { "RG1",     "rg1" },
                    { "testTag", "1"   },
                },
            };
            AvailabilitySet outputAvailabilitySet1 = await AvailabilitySetsOperations.CreateOrUpdateAsync(
                resourceGroup1Name,
                availabilitySet1Name,
                inputAvailabilitySet1);

            resourceGroup2 = (await ResourceGroupsOperations.CreateOrUpdateAsync(
                                  resourceGroup2Name,
                                  new ResourceGroup(TestEnvironment.Location)
            {
                Tags = { { resourceGroup2Name, Recording.UtcNow.ToString("u") } }
            })).Value;

            AvailabilitySet inputAvailabilitySet2 = new AvailabilitySet(TestEnvironment.Location)
            {
                Tags =
                {
                    { "RG2",     "rg2" },
                    { "testTag", "2"   },
                },
            };
            AvailabilitySet outputAvailabilitySet2 = (await AvailabilitySetsOperations.CreateOrUpdateAsync(
                                                          resourceGroup2Name,
                                                          availabilitySet2Name,
                                                          inputAvailabilitySet2)).Value;
            var response = AvailabilitySetsOperations.ListBySubscriptionAsync();
            var resp     = await response.ToEnumerableAsync();

            //Assert.Null(resp.NextPageLink);

            foreach (AvailabilitySet availabilitySet in resp)
            {
                if (availabilitySet.Name == availabilitySet1Name)
                {
                    Assert.AreEqual(inputAvailabilitySet1.Location, availabilitySet.Location);
                    Assert.IsEmpty(availabilitySet.VirtualMachines);
                }
                else if (availabilitySet.Name == availabilitySet2Name)
                {
                    Assert.AreEqual(inputAvailabilitySet2.Location, availabilitySet.Location);
                    Assert.IsEmpty(availabilitySet.VirtualMachines);
                }
            }

            response = AvailabilitySetsOperations.ListBySubscriptionAsync("virtualMachines/$ref");
            resp     = await response.ToEnumerableAsync();

            int validationCount = 0;

            foreach (AvailabilitySet availabilitySet in resp)
            {
                Assert.NotNull(availabilitySet.VirtualMachines);
                if (availabilitySet.Name == availabilitySet1Name)
                {
                    Assert.AreEqual(0, availabilitySet.VirtualMachines.Count);
                    await ValidateResults(outputAvailabilitySet1, inputAvailabilitySet1, resourceGroup1Name, availabilitySet1Name, defaultFD, defaultUD);

                    validationCount++;
                }
                else if (availabilitySet.Name == availabilitySet2Name)
                {
                    Assert.AreEqual(0, availabilitySet.VirtualMachines.Count);
                    await ValidateResults(outputAvailabilitySet2, inputAvailabilitySet2, resourceGroup2Name, availabilitySet2Name, defaultFD, defaultUD);

                    validationCount++;
                }
            }

            Assert.True(validationCount == 2);
        }