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