コード例 #1
0
        void VerifyThrow()
        {
            var serializer = new ConfigurationContainer().EnableImplicitTyping(typeof(Entity), typeof(Entity2))
                             .WithUnknownContent()
                             .Throw()
                             .Create();

            // language=XML
            const string content1 =
                @"<?xml version=""1.0"" encoding=""utf-8""?>
				<Issue271Tests-Entity>
					<Name>Foo</Name>
					<Show>false</Show>
					<Children>
						<Issue271Tests-Entity>
							<Name>Bar</Name>
							<Show>false</Show>
						</Issue271Tests-Entity>
						<Issue271Tests-Entity>
							<Name>Jim</Name>
							<Show>true</Show>
						</Issue271Tests-Entity>
					</Children>
				</Issue271Tests-Entity>"                ;

            serializer.Invoking(x => x.Deserialize <Entity>(content1))
            .Should().Throw <XmlException>()
            .WithMessage("Unknown/invalid member encountered: 'Show'. Line 4, position 7.");
        }
コード例 #2
0
        void Verify()
        {
            var serializer = new ConfigurationContainer().EnableMemberExceptionHandling()
                             .Create()
                             .ForTesting();

            serializer.Invoking(x => x.Serialize(new Subject()))
            .ShouldThrowExactly <InvalidOperationException>()
            .WithMessage("An exception was encountered while serializing member 'ExtendedXmlSerializer.Tests.ReportedIssues.Issue214Tests+Subject.Message'.  Provided instance is 'ExtendedXmlSerializer.Tests.ReportedIssues.Issue214Tests+Subject'.")
            .WithInnerException <InvalidOperationException>();

            serializer.Invoking(x => x.Deserialize <Subject>(@"<?xml version=""1.0"" encoding=""utf-8""?><Issue214Tests-Subject xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests""><Message>Hello World!</Message></Issue214Tests-Subject>"))
            .ShouldThrowExactly <InvalidOperationException>()
            .WithMessage("An exception was encountered while deserializing member 'ExtendedXmlSerializer.Tests.ReportedIssues.Issue214Tests+Subject.Message'.")
            .WithInnerException <XmlException>();
        }
コード例 #3
0
        void Verify()
        {
            var instance  = new { Test = "Hello World!" };
            var container = new ConfigurationContainer().Create().ForTesting();

            container.Invoking(x => x.Serialize(instance))
            .Should()
            .Throw <InvalidOperationException>()
            .WithMessage("Dynamic/anonymous types are not supported.");
        }
コード例 #4
0
        public void Verify()
        {
            var subject = new ConfigurationContainer().Create().ForTesting();

            const string document =
                @"<?xml version=""1.0"" encoding=""utf-8""?><Issue558Tests-Subject xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests.ReportedIssues.DoesNotExist"" />";

            subject.Invoking(x => x.Deserialize <Subject>(document))
            .Should()
            .ThrowExactly <InvalidOperationException>()
            .WithMessage("Could not load assembly 'ExtendedXmlSerializer.Tests.ReportedIssues.DoesNotExist'.  Are you sure it exists?");
        }
コード例 #5
0
        public void VerifyThrow()
        {
            // language=XML
            const string input =
                @"<Zoo><Animals><Issue473Tests-Animal Name=""Hello""/><Human/><Issue473Tests-Animal Name=""World""/></Animals></Zoo>";

            var serializer = new ConfigurationContainer().Type <Zoo>()
                             .Name("Zoo")
                             .EnableImplicitTyping(typeof(Zoo), typeof(Animal))
                             .WithUnknownContent()
                             .Throw()
                             .Create();

            serializer.Invoking(x => x.Deserialize <Zoo>(input))
            .Should()
            .Throw <XmlException>()
            .WithMessage("Unknown/invalid member encountered: 'Human'. Line 1, position 52.");
        }
コード例 #6
0
        public void Verify()
        {
            var serializer = new ConfigurationContainer().EnableMemberExceptionHandling()
                             .WithUnknownContent()
                             .Throw()
                             .Create()
                             .ForTesting();
            var document = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Issue507Tests-Subject xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests.ReportedIssues"">
	<Message>hello world!</Message>
	<DoesNotExist>This is very broken</DoesNotExist>
</Issue507Tests-Subject>";

            serializer.Invoking(x => x.Deserialize <Subject>(document))
            .Should()
            .Throw <XmlException>()
            .Which.LinePosition.Should()
            .BeGreaterThan(0);
        }
コード例 #7
0
        public void Verify()
        {
            const string content = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Issue571Tests-InputModelExample>
	<Configuration />
	<ModuleStates>
		<Capacity>4</Capacity>
		<Issue571Tests-ModuleState>
			<Name>BUC</Name>
		</Issue571Tests-ModuleState>
	</ModuleStates>
</Issue571Tests-InputModelExample>";
            var          subject = new ConfigurationContainer()
                                   .EnableImplicitTyping(typeof(InputModelExample), typeof(ModuleState))
                                   .WithUnknownContent()
                                   .Throw()
                                   .Create()
                                   .ForTesting();

            subject.Invoking(support => support.Deserialize <InputModelExample>(content)).Should().NotThrow();
        }