/// <summary>Compact all primary resource identifiers to read-only identifiers.</summary>
        private void CompactResourceIdentifierNodes()
        {
            var domResourceIdentifiers = this.DomDocument.DomResourceIdentitifiers().ToList();

            foreach (var domResourceIdentifier in domResourceIdentifiers)
            {
                if (domResourceIdentifier.IsReadOnly)
                {
                    continue;
                }

                var domReadWriteResourceIdentifier = (DomReadWriteResourceIdentifier)domResourceIdentifier;
                var domParentNode = (IContainerNode <DomNodeType>)domReadWriteResourceIdentifier.ParentNode;

                var apiResourceIdentifier = domResourceIdentifier.ApiResourceIdentifier;
                if (apiResourceIdentifier.IsUndefined())
                {
                    domParentNode.RemoveNode(domReadWriteResourceIdentifier);
                    continue;
                }

                var clrResourceType = domResourceIdentifier.ClrResourceType;
                var domReadOnlyResourceIdentifier = DomReadOnlyResourceIdentifier.Create(apiResourceIdentifier, clrResourceType);

                domParentNode.ReplaceNode(domReadWriteResourceIdentifier, domReadOnlyResourceIdentifier);
            }
        }
        public void TestDomReadOnlyResourceIdentifierCreate(string name, ResourceIdentifier apiResourceIdentifier, Type clrResourceType)
        {
            // Arrange

            // Act
            var actual = DomReadOnlyResourceIdentifier.Create(apiResourceIdentifier, clrResourceType);

            this.Output.WriteLine("Test Name: {0}", name);
            this.Output.WriteLine(String.Empty);
            this.OutputDomTree(actual);

            // Assert
            DomReadOnlyResourceIdentifierAssert.Equal(apiResourceIdentifier, actual);
        }
Ejemplo n.º 3
0
        // PUBLIC METHODS ///////////////////////////////////////////////////
        #region Assert Methods
        public static void Equal(ResourceIdentifier expectedApiResourceIdentifier, DomReadOnlyResourceIdentifier actual)
        {
            if (expectedApiResourceIdentifier == null)
            {
                Assert.Null(actual);
                return;
            }
            Assert.NotNull(actual);

            Assert.Equal(DomNodeType.ResourceIdentifier, actual.NodeType);

            var actualResourceIdentifier = actual.ApiResourceIdentifier;

            ResourceIdentifierAssert.Equal(expectedApiResourceIdentifier, actualResourceIdentifier);
        }