Exemple #1
0
        // 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);
        }
Exemple #3
0
        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);
            }
        }