public void CanCreateXmlSchema() { var sut = new XmlSchemer(); var xsd = sut.Create(typeof(StarFleet)); Assert.IsTrue(xsd.Length > 100); Assert.IsTrue(xsd.Contains("utf-8")); Assert.IsTrue(xsd.Contains(nameof(CrewMember))); }
public void CanValidateAgainstXmlSchema() { var sut = new XmlSchemer(); var serializer = new XmlSerializer(); var crewMember = new CrewMember { FirstName = "B'Elanna", SurName = "Torres", Rank = "Lieutenant" }; var xml = serializer.Serialize(crewMember); var errorsAndInfos = new ErrorsAndInfos(); Assert.IsTrue(sut.Valid(CrewMemberSecretGuid, xml, typeof(CrewMember), errorsAndInfos)); Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsToString()); Assert.IsFalse(sut.Valid(StarShipSecretGuid, xml, typeof(StarShip), errorsAndInfos)); Assert.IsTrue(errorsAndInfos.Errors.Any(e => e.Contains("The \'http://www.aspenlaub.net:CrewMember\' element is not declared"))); var xsd = sut.Create(typeof(CrewMember)).Replace("firstname", "worstname"); errorsAndInfos = new ErrorsAndInfos(); Assert.IsFalse(XmlSchemer.Valid(CrewMemberSecretGuid, xml, xsd, errorsAndInfos)); Assert.IsTrue(errorsAndInfos.Errors.Any(e => e.Contains("The \'firstname\' attribute is not declared"))); }