Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 5
0
        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++;
                }
            }
        }
Ejemplo n.º 6
0
        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);
        }