// PUBLIC CONSTRUCTORS ////////////////////////////////////////////// #region Constructors public DocumentReader(Document apiDocument, IServiceModel serviceModel) { Contract.Requires(serviceModel != null); Contract.Requires(apiDocument != null); var domDocument = DomDocument.Parse(apiDocument, serviceModel); this.DomDocument = domDocument; }
public void TestDomDocumentDomResources(string name, IServiceModel serviceModel, Document apiDocument) { // Arrange var domDocument = DomDocument.Parse(apiDocument, serviceModel); var expectedApiResources = new List <Resource>(); if (!apiDocument.IsDataNullOrEmpty()) { if (apiDocument.IsResourceDocument()) { var apiResource = apiDocument.GetResource(); expectedApiResources.Add(apiResource); } else if (apiDocument.IsResourceCollectionDocument()) { var apiResourceCollection = apiDocument.GetResourceCollection(); expectedApiResources.AddRange(apiResourceCollection); } } if (!apiDocument.IsIncludedNullOrEmpty()) { var apiIncludedResources = apiDocument.GetIncludedResources(); expectedApiResources.AddRange(apiIncludedResources); } // Act var actualDomResources = domDocument.DomResources() .SafeToList(); var actualApiResources = actualDomResources.Select(x => x.ApiResource) .SafeToList(); this.Output.WriteLine("Test Name: {0}", name); this.Output.WriteLine(String.Empty); this.OutputDomTree(domDocument); this.OutputEmptyLine(); this.Output.WriteLine("Expected Resources"); foreach (var expectedApiResource in expectedApiResources) { this.Output.WriteLine(expectedApiResource.ToString()); } this.OutputEmptyLine(); this.Output.WriteLine("Actual Resources"); foreach (var actualApiResource in actualApiResources) { this.Output.WriteLine(actualApiResource.ToString()); } // Assert ResourceAssert.Equal(expectedApiResources, actualApiResources); }
private Lazy <DomDocument> CreateLazyDomDocument(Document apiDocument) { var lazyDomDocument = new Lazy <DomDocument>(() => { var serviceModel = this.GetServiceModel(); var domDocument = DomDocument.Parse(apiDocument, serviceModel); return(domDocument); }); return(lazyDomDocument); }
public void TestDomDocumentParse(string name, IServiceModel serviceModel, Document apiDocument) { // Arrange // Act var domDocument = DomDocument.Parse(apiDocument, serviceModel); this.Output.WriteLine("Test Name: {0}", name); this.Output.WriteLine(String.Empty); this.OutputDomTree(domDocument); this.OutputEmptyLine(); this.OutputJson(apiDocument); // Assert DomDocumentAssert.Equal(apiDocument, domDocument); }
public void TestDomDocumentDomResourceIdentities(string name, IServiceModel serviceModel, Document apiDocument) { // Arrange var domDocument = DomDocument.Parse(apiDocument, serviceModel); var expectedResourceIdentities = new List <ResourceIdentity>(); if (!apiDocument.IsDataNullOrEmpty()) { if (apiDocument.IsResourceDocument()) { var apiResource = apiDocument.GetResource(); expectedResourceIdentities.Add(new ResourceIdentity(apiResource)); } else if (apiDocument.IsResourceCollectionDocument()) { var apiResourceCollection = apiDocument.GetResourceCollection(); expectedResourceIdentities.AddRange(apiResourceCollection.Select(x => new ResourceIdentity(x))); } else if (apiDocument.IsResourceIdentifierDocument()) { var apiResourceIdentifier = apiDocument.GetResourceIdentifier(); expectedResourceIdentities.Add(new ResourceIdentity(apiResourceIdentifier)); } else if (apiDocument.IsResourceIdentifierCollectionDocument()) { var apiResourceIdentifierCollection = apiDocument.GetResourceIdentifierCollection(); expectedResourceIdentities.AddRange(apiResourceIdentifierCollection.Select(x => new ResourceIdentity(x))); } } if (!apiDocument.IsIncludedNullOrEmpty()) { var apiIncludedResourceCollection = apiDocument.GetIncludedResources(); expectedResourceIdentities.AddRange(apiIncludedResourceCollection.Select(x => new ResourceIdentity(x))); } // Act var actualDomResourceIdentities = domDocument.DomResourceIdentities() .SafeToList(); var actualResourceIdentities = actualDomResourceIdentities.Select(x => new ResourceIdentity(x)) .SafeToList(); this.Output.WriteLine("Test Name: {0}", name); this.Output.WriteLine(String.Empty); this.OutputDomTree(domDocument); this.OutputEmptyLine(); this.Output.WriteLine("Expected Resource Identities"); foreach (var expectedResourceIdentity in expectedResourceIdentities) { this.Output.WriteLine(expectedResourceIdentity.ToString()); } this.OutputEmptyLine(); this.Output.WriteLine("Actual Resource Identities"); foreach (var actualResourceIdentity in actualResourceIdentities) { this.Output.WriteLine(actualResourceIdentity.ToString()); } // Assert var expectedCount = expectedResourceIdentities.Count; var actualCount = actualResourceIdentities.Count; Assert.Equal(expectedCount, actualCount); var count = expectedCount; for (var i = 0; i < count; ++i) { var expectedResourceIdentity = expectedResourceIdentities[i]; var actualResourceIdentity = actualResourceIdentities[i]; Assert.Equal(expectedResourceIdentity.ApiResourceType, actualResourceIdentity.ApiResourceType); Assert.Equal(expectedResourceIdentity.ApiResourceId, actualResourceIdentity.ApiResourceId); } }