private IntPtr GetResource(uint ofType, short index) { #if DEBUG DebugUtils.Ping(DebugFlags.ResourceSuite, string.Format("{0}, {1}", DebugUtils.PropToString(ofType), index)); #endif PSResource res = pseudoResources.Find(delegate(PSResource r) { return(r.Equals(ofType, index)); }); if (res != null) { byte[] data = res.GetDataReadOnly(); IntPtr h = HandleSuite.Instance.NewHandle(data.Length); if (h != IntPtr.Zero) { Marshal.Copy(data, 0, HandleSuite.Instance.LockHandle(h, 0), data.Length); HandleSuite.Instance.UnlockHandle(h); } return(h); } return(IntPtr.Zero); }
public void GetsResourcesById() { var pipeline = new List <PSResource>(); var gr = new GenericResource(resourceId, resourceName, resourceType, location, tags, null, null, kind, null, null, null); var expected = new PSResource(gr); resourcesClientMock.Setup(f => f.GetById(resourceId, Constants.ResourcesApiVersion)).Returns(expected); commandRuntimeMock.Setup(r => r.WriteObject(It.IsAny <PSResource>())).Callback <object>(resource => pipeline.Add((PSResource)resource)); cmdlet.ResourceId = resourceId; cmdlet.ExecuteCmdlet(); Assert.Single(pipeline); var actual = pipeline[0]; Assert.Equal(resourceId, actual.Id); Assert.Equal(resourceId, actual.ResourceId); Assert.Equal(subscriptionId, actual.SubscriptionId); Assert.Equal(resourceGroupName, actual.ResourceGroupName); Assert.Equal(resourceType, actual.ResourceType); Assert.Equal(resourceType, actual.Type); Assert.Equal(resourceName, actual.Name); Assert.Equal(location, actual.Location); Assert.Equal(kind, actual.Kind); Assert.Equal(tags, actual.Tags); }
public void CreatesNewPSResourceGroupWithUserTemplate() { CreatePSResourceParameters expectedParameters = new CreatePSResourceParameters() { Name = resourceName, ParentResource = resourceParentName, ResourceType = resourceType, ResourceGroupName = resourceGroupName, PropertyObject = properties.ToHashtable(), Tag = tags }; CreatePSResourceParameters actualParameters = new CreatePSResourceParameters(); PSResource expected = new PSResource() { Name = expectedParameters.Name, Location = resourceGroupLocation, ResourceGroupName = expectedParameters.ResourceGroupName, Properties = expectedParameters.PropertyObject, ResourceType = expectedParameters.ResourceType, Tags = expectedParameters.Tag }; resourcesClientMock.Setup(f => f.CreatePSResource(It.IsAny <CreatePSResourceParameters>())) .Returns(expected) .Callback((CreatePSResourceParameters p) => { actualParameters = p; }); cmdlet.Name = expectedParameters.Name; cmdlet.ResourceGroupName = expectedParameters.ResourceGroupName; cmdlet.ResourceType = expectedParameters.ResourceType; cmdlet.ParentResource = expectedParameters.ParentResource; cmdlet.PropertyObject = expectedParameters.PropertyObject; cmdlet.Tag = expectedParameters.Tag; cmdlet.ExecuteCmdlet(); Assert.Equal(expectedParameters.Name, actualParameters.Name); Assert.Equal(expectedParameters.ResourceGroupName, actualParameters.ResourceGroupName); Assert.Equal(expectedParameters.ResourceType, actualParameters.ResourceType); Assert.Equal(expectedParameters.ParentResource, actualParameters.ParentResource); Assert.Equal(expectedParameters.PropertyObject, actualParameters.PropertyObject); Assert.Equal(expectedParameters.Tag, actualParameters.Tag); commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once()); }
public void UpdatrePSResourceGroup() { UpdatePSResourceParameters expectedParameters = new UpdatePSResourceParameters() { Name = resourceName, ParentResource = resourceParentName, ResourceType = resourceType, ResourceGroupName = resourceGroupName, PropertyObject = properties.ToHashtable() }; UpdatePSResourceParameters actualParameters = new UpdatePSResourceParameters(); PSResource expected = new PSResource() { Name = expectedParameters.Name, Location = resourceGroupLocation, ResourceGroupName = expectedParameters.ResourceGroupName, Properties = expectedParameters.PropertyObject, ResourceType = expectedParameters.ResourceType }; resourcesClientMock.Setup(f => f.UpdatePSResource(It.IsAny <UpdatePSResourceParameters>())) .Returns(expected) .Callback((UpdatePSResourceParameters p) => { actualParameters = p; }); cmdlet.Name = expectedParameters.Name; cmdlet.ResourceGroupName = expectedParameters.ResourceGroupName; cmdlet.ResourceType = expectedParameters.ResourceType; cmdlet.ParentResource = expectedParameters.ParentResource; cmdlet.PropertyObject = expectedParameters.PropertyObject; cmdlet.ExecuteCmdlet(); Assert.Equal(expectedParameters.Name, actualParameters.Name); Assert.Equal(expectedParameters.ResourceGroupName, actualParameters.ResourceGroupName); Assert.Equal(expectedParameters.ResourceType, actualParameters.ResourceType); Assert.Equal(expectedParameters.ParentResource, actualParameters.ParentResource); Assert.Equal(expectedParameters.PropertyObject, actualParameters.PropertyObject); commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once()); }
private void DeleteResource(uint ofType, short index) { #if DEBUG DebugUtils.Ping(DebugFlags.ResourceSuite, string.Format("{0}, {1}", DebugUtils.PropToString(ofType), index)); #endif int resourceIndex = pseudoResources.FindIndex(delegate(PSResource r) { return(r.Equals(ofType, index)); }); if (resourceIndex >= 0) { pseudoResources.RemoveAt(resourceIndex); int i = index + 1; while (true) { // Renumber the index of subsequent items. int next = pseudoResources.FindIndex(delegate(PSResource r) { return(r.Equals(ofType, i)); }); if (next < 0) { break; } PSResource existing = pseudoResources[next]; int newIndex = i - 1; pseudoResources[next] = new PSResource(existing, newIndex); i++; } } }
public virtual PSResource GetById(string resourceId, string apiVersion) { PSResource result = null; var resourceIdentifier = new ResourceIdentifier(resourceId); var providers = ResourceManagementClient.Providers.List(); foreach (var provider in providers) { var resourceType = provider.ResourceTypes .Where(t => string.Equals(string.Format("{0}/{1}", provider.NamespaceProperty, t.ResourceType), resourceIdentifier.ResourceType, StringComparison.OrdinalIgnoreCase)) .FirstOrDefault(); if (resourceType != null) { apiVersion = resourceType.ApiVersions.Contains(apiVersion) ? apiVersion : resourceType.ApiVersions.FirstOrDefault(); if (!string.IsNullOrEmpty(apiVersion)) { return(new PSResource(ResourceManagementClient.Resources.GetById(resourceId, apiVersion))); } } } return(result); }