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
}
}
}
}
|