/// <summary> /// Filters a given resource group resources. /// </summary> /// <param name="options">The filtering options</param> /// <returns>The filtered set of resources matching the filter criteria</returns> public virtual List <Resource> FilterResources(FilterResourcesOptions options) { List <Resource> resources = new List <Resource>(); if (!string.IsNullOrEmpty(options.ResourceGroup) && !string.IsNullOrEmpty(options.Name)) { resources.Add(ResourceManagementClient.Resources.Get(options.ResourceGroup, new ResourceIdentity { ResourceName = options.Name }).Resource); } else { ResourceListResult result = ResourceManagementClient.Resources.List(new ResourceListParameters { ResourceGroupName = options.ResourceGroup, ResourceType = options.ResourceType }); resources.AddRange(result.Resources); while (!string.IsNullOrEmpty(result.NextLink)) { result = ResourceManagementClient.Resources.ListNext(result.NextLink); resources.AddRange(result.Resources); } } return(resources); }
public void GetsAllResourceGroupResources() { FilterResourcesOptions options = new FilterResourcesOptions() { ResourceGroup = resourceGroupName }; Resource resource1 = new Resource() { Id = "resourceId", Location = resourceGroupLocation, Name = resourceName }; Resource resource2 = new Resource() { Id = "resourceId2", Location = resourceGroupLocation, Name = resourceName + "2" }; ResourceListParameters actualParameters = new ResourceListParameters(); resourceOperationsMock.Setup(f => f.ListAsync(It.IsAny<ResourceListParameters>(), new CancellationToken())) .Returns(Task.Factory.StartNew(() => new ResourceListResult { Resources = new List<Resource>() { resource1, resource2 } })) .Callback((ResourceListParameters p, CancellationToken ct) => { actualParameters = p; }); List<Resource> result = resourcesClient.FilterResources(options); Assert.Equal(2, result.Count); Assert.True(string.IsNullOrEmpty(actualParameters.ResourceType)); }
public void GetsOneResource() { FilterResourcesOptions options = new FilterResourcesOptions() { ResourceGroup = resourceGroupName, Name = resourceName }; Resource expected = new Resource() { Id = "resourceId", Location = resourceGroupLocation, Name = resourceName }; ResourceIdentity actualParameters = new ResourceIdentity(); string actualResourceGroup = null; resourceOperationsMock.Setup(f => f.GetAsync(resourceGroupName, It.IsAny<ResourceIdentity>(), new CancellationToken())) .Returns(Task.Factory.StartNew(() => new ResourceGetResult { Resource = expected })) .Callback((string rg, ResourceIdentity p, CancellationToken ct) => { actualParameters = p; actualResourceGroup = rg; }); List<Resource> result = resourcesClient.FilterResources(options); Assert.Equal(1, result.Count); Assert.Equal(options.Name, result.First().Name); Assert.Equal(expected.Id, result.First().Id); Assert.Equal(expected.Location, result.First().Location); Assert.Equal(expected.Name, actualParameters.ResourceName); Assert.Equal(resourceGroupName, actualResourceGroup); }
public void GetsAllResourcesUsingResourceType() { FilterResourcesOptions options = new FilterResourcesOptions() { ResourceGroup = resourceGroupName, ResourceType = "websites" }; GenericResourceExtended resource1 = new GenericResourceExtended() { Id = "resourceId", Location = resourceGroupLocation, Name = resourceName }; GenericResourceExtended resource2 = new GenericResourceExtended() { Id = "resourceId2", Location = resourceGroupLocation, Name = resourceName + "2", }; ResourceListParameters actualParameters = new ResourceListParameters(); resourceOperationsMock.Setup(f => f.ListAsync(It.IsAny<ResourceListParameters>(), new CancellationToken())) .Returns(Task.Factory.StartNew(() => new ResourceListResult { Resources = new List<GenericResourceExtended>() { resource1, resource2 } })) .Callback((ResourceListParameters p, CancellationToken ct) => { actualParameters = p; }); List<GenericResourceExtended> result = resourcesClient.FilterResources(options); Assert.Equal(2, result.Count); Assert.Equal(options.ResourceType, actualParameters.ResourceType); }
/// <summary> /// Filters a given resource group resources. /// </summary> /// <param name="options">The filtering options</param> /// <returns>The filtered set of resources matching the filter criteria</returns> public virtual List<Resource> FilterResources(FilterResourcesOptions options) { List<Resource> resources = new List<Resource>(); if (!string.IsNullOrEmpty(options.ResourceGroup) && !string.IsNullOrEmpty(options.Name)) { resources.Add(ResourceManagementClient.Resources.Get(options.ResourceGroup, new ResourceIdentity { ResourceName = options.Name }).Resource); } else { ResourceListResult result = ResourceManagementClient.Resources.List(new ResourceListParameters { ResourceGroupName = options.ResourceGroup, ResourceType = options.ResourceType }); resources.AddRange(result.Resources); while (!string.IsNullOrEmpty(result.NextLink)) { result = ResourceManagementClient.Resources.ListNext(result.NextLink); resources.AddRange(result.Resources); } } return resources; }
public void GetsResourcesGroups() { List<Resource> result = new List<Resource>(); Resource expected = new Resource() { Id = "/subscriptions/aaaa/resourceGroups/foo/providers/Microsoft.Web/serverFarms/" + resourceName, Name = resourceName, Location = resourceGroupLocation, Type = resourceType, ProvisioningState = "Running", Properties = serializedProperties }; FilterResourcesOptions inputParameters = new FilterResourcesOptions { Name = resourceName, ResourceType = resourceType, ResourceGroup = resourceGroupName, }; result.Add(expected); resourcesClientMock.Setup(f => f.FilterResources(inputParameters)).Returns(result); cmdlet.ResourceGroupName = resourceGroupName; cmdlet.ExecuteCmdlet(); Assert.Equal(1, result.Count); Assert.Equal(resourceGroupLocation, result[0].Location); Assert.Equal(resourceType, result[0].Type); Assert.Equal("Running", result[0].ProvisioningState); Assert.Equal(serializedProperties, result[0].Properties); }