changeset 13:f6fd30d3b817

Fixes #25: Enum parsing * Add tests for enum parsing class * Update XmlTools exception checks
author IBBoard <dev@ibboard.co.uk>
date Mon, 30 Nov 2009 21:00:41 +0000
parents 298786adcddc
children 15cf2fe2a627
files EnumToolsTests.cs IBBoard.Tests.csproj Xml/XmlToolsTests.cs
diffstat 3 files changed, 49 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EnumToolsTests.cs	Mon Nov 30 21:00:41 2009 +0000
@@ -0,0 +1,45 @@
+// This file (EnumToolsTests.cs) is a part of the IBBoard.Tests project and is copyright 2009 IBBoard
+// 
+//  The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.
+
+using System;
+using System.Xml;
+using NUnit.Framework;
+
+namespace IBBoard
+{
+	[TestFixture()]
+	public class EnumToolsTests
+	{
+		private enum TestEnum
+		{
+			ALPHA
+		}
+		
+		[Test()]
+		public void TestParsingOfValidEnumString ()
+		{
+			Assert.AreEqual(TestEnum.ALPHA, EnumTools.ParseEnum<TestEnum>("ALPHA"));
+		}
+		
+		[Test()]
+		public void TestParsingOfValidEnumStringWithDifferentCase ()
+		{
+			Assert.AreEqual(TestEnum.ALPHA, EnumTools.ParseEnum<TestEnum>("Alpha"));
+		}
+		
+		[Test()]
+		[ExpectedException(typeof(ArgumentException), ExpectedMessage="The requested value 'Omega' was not found.")]
+		public void TestParsingValidEnumStringWithInvalidValueThrowsException ()
+		{
+			EnumTools.ParseEnum<TestEnum>("Omega");
+		}
+		
+		[Test()]
+		[ExpectedException(typeof(ArgumentException), ExpectedMessage="The requested value 'Alpha' was not found.")]
+		public void TestCaseSensitiveParsingOfValidValueInInvalidCaseThrowsException ()
+		{
+			EnumTools.ParseEnum<TestEnum>("Alpha", false);
+		}
+	}
+}
--- a/IBBoard.Tests.csproj	Mon Nov 30 20:47:22 2009 +0000
+++ b/IBBoard.Tests.csproj	Mon Nov 30 21:00:41 2009 +0000
@@ -35,6 +35,7 @@
     <Compile Include="Limits\AbsoluteNumericLimitTest.cs" />
     <Compile Include="Limits\UnlimitedLimitTest.cs" />
     <Compile Include="Xml\XmlToolsTests.cs" />
+    <Compile Include="EnumToolsTests.cs" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="System" />
--- a/Xml/XmlToolsTests.cs	Mon Nov 30 20:47:22 2009 +0000
+++ b/Xml/XmlToolsTests.cs	Mon Nov 30 21:00:41 2009 +0000
@@ -1,4 +1,4 @@
-// This file (AbstractLimitTest.cs) is a part of the IBBoard.Tests project and is copyright 2009 IBBoard
+// This file (XmlToolsTests.cs) is a part of the IBBoard.Tests project and is copyright 2009 IBBoard
 // 
 //  The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.
 
@@ -41,7 +41,7 @@
 		}
 		
 		[Test()]
-		[ExpectedException(typeof(FormatException), ExpectedMessage="Attribute 'enum' of sample with ID  was not a valid TestEnum enum")]
+		[ExpectedException(typeof(FormatException), ExpectedMessage="Attribute 'enum' with value Omega for sample with ID '' was not a valid TestEnum enum")]
 		public void TestParsingValidEnumStringWithInvalidValueThrowsException ()
 		{
 			XmlElement elem = GetElement("Omega");
@@ -49,7 +49,7 @@
 		}
 		
 		[Test()]
-		[ExpectedException(typeof(FormatException), ExpectedMessage="Attribute 'enum' of sample with ID  was not a valid TestEnum enum")]
+		[ExpectedException(typeof(FormatException), ExpectedMessage="Attribute 'enum' with value Alpha for sample with ID '' was not a valid TestEnum enum")]
 		public void TestCaseSensitiveParsingOfValidValueInInvalidCaseThrowsException ()
 		{
 			XmlElement elem = GetElement("Alpha");