/// <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); }