예제 #1
0
        public void TestDomReadOnlyErrorCreate(string name, Error[] expectedErrors)
        {
            // Arrange

            // Act
            var actual = DomReadOnlyErrors.Create(expectedErrors);

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

            // Assert
            DomReadOnlyErrorsAssert.Equal(expectedErrors, actual);
        }
        // PUBLIC METHODS ///////////////////////////////////////////////////
        #region Assert Methods
        public static void Equal(IEnumerable <Error> expected, DomReadOnlyErrors actual)
        {
            if (expected == null)
            {
                Assert.Null(actual);
                return;
            }
            Assert.NotNull(actual);

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

            var actualErrors = actual.Errors
                               .ToList();

            ErrorAssert.Equal(expected, actualErrors);
        }
        private void CompactDomErrors()
        {
            var domErrors = (IDomErrors)this.DomDocument.GetNode(DomNodeType.Errors);

            if (domErrors == null || domErrors.IsReadOnly)
            {
                return;
            }

            var domReadWriteErrors = (DomReadWriteErrors)domErrors;
            var domParentNode      = (IContainerNode <DomNodeType>)domReadWriteErrors.ParentNode;

            var apiErrors         = domErrors.Errors;
            var domReadOnlyErrors = DomReadOnlyErrors.Create(apiErrors);

            domParentNode.ReplaceNode(domReadWriteErrors, domReadOnlyErrors);
        }