From: Owen R. <exo...@us...> - 2004-07-06 05:13:59
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17404/src/NetReflector.Test/Serialisers Modified Files: XmlMemberSerialiserTest.cs Added Files: XmlDocumentationGeneratorTest.cs Log Message: support for enums in netreflector Index: XmlMemberSerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlMemberSerialiserTest.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlMemberSerialiserTest.cs 12 Dec 2003 21:30:17 -0000 1.2 --- XmlMemberSerialiserTest.cs 6 Jul 2004 05:13:20 -0000 1.3 *************** *** 95,98 **** --- 95,99 ---- } + [Test] public void ReadShouldNotOverwriteDefaultValues() { *************** *** 105,108 **** --- 106,124 ---- { } + + [Test, ExpectedException(typeof(NetReflectorException))] + public void ReadXmlWithMissingTypeOnAPropertyShouldThrowNetReflectorException() + { + string xml = TestClass.GetXmlWithSubClass(DateTime.Now).Replace(@"classType=""sub""", @"classType=""foo"""); + NetReflector.Read(xml, table); + } + + [Test] + public void ReadXmlWithEnum() + { + string xml = EnumTestClass.GetXml(); + EnumTestClass testEnum = (EnumTestClass) NetReflector.Read(xml); + EnumTestClass.AssertEquals(testEnum); + } } } --- NEW FILE: XmlDocumentationGeneratorTest.cs --- using NUnit.Framework; using System; using System.IO; using System.Xml; using Exortech.NetReflector.Util; using System.Reflection; namespace Exortech.NetReflector.Test.Serialisers { [TestFixture] public class XmlDocumentationGeneratorTest : Assertion { [Test] public void ShouldProduceXmlDocumentationOfReflectorTypes() { NetReflectorTypeTable table = new NetReflectorTypeTable(); table.Add(typeof(TestClass)); StringWriter writer = new StringWriter(); XmlDocumentationGenerator generator = new XmlDocumentationGenerator(table, new XmlMemberDocumentationGeneratorExtension()); generator.Write(writer); string expectedXml = @"<type><name>TestClass</name><namespace>Exortech.NetReflector.Test</namespace><reflectorName>reflectTest</reflectorName>" + "<description>Class used for unit testing NetReflector.</description></type>"; AssertEquals(expectedXml, writer.ToString()); } [Test] public void ShouldProduceXmlDocumentationOfReflectorTypesButNotIncludeEmptyDescriptions() { NetReflectorTypeTable table = new NetReflectorTypeTable(); table.Add(typeof(TestSubClass)); StringWriter writer = new StringWriter(); XmlDocumentationGenerator generator = new XmlDocumentationGenerator(table, new XmlMemberDocumentationGeneratorExtension()); generator.Write(writer); string expectedXml = @"<type><name>TestSubClass</name><namespace>Exortech.NetReflector.Test</namespace><reflectorName>sub</reflectorName></type>"; AssertEquals(expectedXml, writer.ToString()); } [Test] public void ShouldProduceDocumentationForTypeMembers() { StringWriter writer = new StringWriter(); XmlMemberDocumentationGenerator generator = new XmlMemberDocumentationGenerator(); generator.Write(new XmlTextWriter(writer), new IXmlMemberSerialiser[] { CreateSerialiser("Name"), CreateSerialiser("Count") }); string expectedXml = @"<members><member><name>Name</name><reflectorName>name</reflectorName><description>name of the test class</description></member>" + "<member><name>Count</name><reflectorName>count</reflectorName></member></members>"; AssertEquals(expectedXml, writer.ToString()); } private IXmlMemberSerialiser CreateSerialiser(string name) { MemberInfo member = typeof(TestClass).GetMember(name)[0]; return (IXmlMemberSerialiser) ReflectorPropertyAttribute.GetAttribute(member).CreateSerialiser(member); } class XmlMemberDocumentationGeneratorExtension : XmlMemberDocumentationGenerator { public override void Write(XmlWriter writer, IXmlMemberSerialiser[] memberSerialisers) { // do nothing } } } } |