diff UnitTests/CS/Common/NameOrIndexParameterTest.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UnitTests/CS/Common/NameOrIndexParameterTest.cs	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,131 @@
+using System;
+
+using NUnit.Framework;
+
+using BLToolkit.Common;
+
+namespace Common
+{
+	[TestFixture]
+	public class NameOrIndexParameterTest
+	{
+		[Test]
+		public void DefaultValueTest()
+		{
+			int expectedValue = 0;
+			NameOrIndexParameter nip = new NameOrIndexParameter();
+			Assert.IsFalse(nip.ByName);
+			Assert.AreEqual(nip.Index, expectedValue);
+		}
+
+		[Test]
+		public void StringTest()
+		{
+			string expectedValue = "54321";
+			NameOrIndexParameter nip = "54321";
+			Assert.IsTrue(nip.ByName);
+			Assert.AreEqual(nip.Name, expectedValue);
+		}
+
+		[Test]
+		public void IntTest()
+		{
+			int expectedValue = 12345;
+			NameOrIndexParameter nip = 12345;
+			Assert.IsFalse(nip.ByName);
+			Assert.AreEqual(nip.Index, expectedValue);
+		}
+
+		[Test]
+		public void ArrayTest()
+		{
+			NameOrIndexParameter[] nips = new NameOrIndexParameter[]{ 12345, "54321" };
+			Assert.AreEqual(nips[0].Index, 12345);
+			Assert.AreEqual(nips[1].Name, "54321");
+		}
+
+		[Test]
+		public void StringArrayTest()
+		{
+			NameOrIndexParameter[] nips = NameOrIndexParameter.FromStringArray(new string[] { "98765", "54321" });
+			Assert.AreEqual(nips[0].Name, "98765");
+			Assert.AreEqual(nips[1].Name, "54321");
+		}
+
+		[Test]
+		public void IntArrayTest()
+		{
+			NameOrIndexParameter[] nips = NameOrIndexParameter.FromIndexArray(new int[] { 12345, 56789 });
+			Assert.AreEqual(nips[0].Index, 12345);
+			Assert.AreEqual(nips[1].Index, 56789);
+		}
+		
+		[Test, ExpectedException(typeof(ArgumentNullException))]
+		public void IllegalStringTest()
+		{
+			NameOrIndexParameter nip = null;
+		}
+
+		[Test, ExpectedException(typeof(ArgumentException))]
+		public void IllegalStringTest2()
+		{
+			NameOrIndexParameter nip = string.Empty;
+		}
+		
+		[Test, ExpectedException(typeof(ArgumentException))]
+		public void IllegalIntTest()
+		{
+			NameOrIndexParameter nip = -12345;
+		}
+
+		[Test, ExpectedException(typeof(InvalidOperationException))]
+		public void IllegalAccessTest()
+		{
+			// Init by index
+			NameOrIndexParameter nip = 12345;
+			Assert.IsFalse(nip.ByName);
+
+			// Exception here
+			string value = nip.Name;
+		}
+
+		[Test, ExpectedException(typeof(InvalidOperationException))]
+		public void IllegalAccessTest2()
+		{
+			// Init by name
+			NameOrIndexParameter nip = "54321";
+			Assert.IsTrue(nip.ByName);
+
+			// Exception here
+			int value = nip.Index;
+		}
+
+		public static object SomeFunc(NameOrIndexParameter nip)
+		{
+			if (nip.ByName)
+			{
+				return nip.Name;
+			}
+			else
+			{
+				return nip.Index;
+			}
+		}
+
+		[Test]
+		public void FunctionTest()
+		{
+			int expectedValue = 12345;
+			object o = SomeFunc(12345);
+			Assert.AreEqual(o, expectedValue);
+		}
+		
+		[Test]
+		public void FunctionTest2()
+		{
+			string expectedValue = "54321";
+			object o = SomeFunc("54321");
+			Assert.AreEqual(o, expectedValue);
+		}
+	}
+}