public void Test_StartsWith_NullMatches()
		{
			var s = new StartsWithSpecification("Foo", false, true);
			Assert.IsFalse(s.Test("a").Success);
			Assert.IsFalse(s.Test("foo").Success);
			Assert.IsTrue(s.Test("Foo").Success);

			Assert.IsTrue(s.Test(null).Success);

			//TODO: it would seem that this test ought to succeed - consider changing this behaviour
			Assert.IsFalse(s.Test("").Success);
		}
        public void Test_StartsWith_NullMatches()
        {
            var s = new StartsWithSpecification("Foo", false, true);

            Assert.IsFalse(s.Test("a").Success);
            Assert.IsFalse(s.Test("foo").Success);
            Assert.IsTrue(s.Test("Foo").Success);

            Assert.IsTrue(s.Test(null).Success);

            //TODO: it would seem that this test ought to succeed - consider changing this behaviour
            Assert.IsFalse(s.Test("").Success);
        }
		public void Test_StartsWith_IgnoreCasing()
		{
			var s = new StartsWithSpecification("Foo", true, false);
			Assert.IsFalse(s.Test("").Success);
			Assert.IsFalse(s.Test("a").Success);
			Assert.IsFalse(s.Test(null).Success);
			Assert.IsTrue(s.Test("foo").Success);
			Assert.IsTrue(s.Test("Foo").Success);
			Assert.IsTrue(s.Test("FOO").Success);
			Assert.IsTrue(s.Test("fooa").Success);
			Assert.IsTrue(s.Test("Fooa").Success);
			Assert.IsTrue(s.Test("FOOa").Success);
		}
		public void Test_StartsWith()
		{
			var s = new StartsWithSpecification("Foo", false, false);
			Assert.IsFalse(s.Test("").Success);
			Assert.IsFalse(s.Test("a").Success);
			Assert.IsFalse(s.Test(null).Success);
			Assert.IsFalse(s.Test("foo").Success);
			Assert.IsFalse(s.Test("fooa").Success);
			Assert.IsFalse(s.Test("afoo").Success);
			Assert.IsFalse(s.Test("aFoo").Success);
			Assert.IsTrue(s.Test("Foo").Success);
			Assert.IsTrue(s.Test("Fooa").Success);
		}
        public void Test_StartsWith_IgnoreCasing()
        {
            var s = new StartsWithSpecification("Foo", true, false);

            Assert.IsFalse(s.Test("").Success);
            Assert.IsFalse(s.Test("a").Success);
            Assert.IsFalse(s.Test(null).Success);
            Assert.IsTrue(s.Test("foo").Success);
            Assert.IsTrue(s.Test("Foo").Success);
            Assert.IsTrue(s.Test("FOO").Success);
            Assert.IsTrue(s.Test("fooa").Success);
            Assert.IsTrue(s.Test("Fooa").Success);
            Assert.IsTrue(s.Test("FOOa").Success);
        }
        public void Test_StartsWith()
        {
            var s = new StartsWithSpecification("Foo", false, false);

            Assert.IsFalse(s.Test("").Success);
            Assert.IsFalse(s.Test("a").Success);
            Assert.IsFalse(s.Test(null).Success);
            Assert.IsFalse(s.Test("foo").Success);
            Assert.IsFalse(s.Test("fooa").Success);
            Assert.IsFalse(s.Test("afoo").Success);
            Assert.IsFalse(s.Test("aFoo").Success);
            Assert.IsTrue(s.Test("Foo").Success);
            Assert.IsTrue(s.Test("Fooa").Success);
        }
        public void Test_StartsWith_InvalidType()
        {
            var s = new StartsWithSpecification("Foo", false, false);

            Assert.IsFalse(s.Test(1).Success);
        }
		public void Test_StartsWith_InvalidType()
		{
			var s = new StartsWithSpecification("Foo", false, false);
			Assert.IsFalse(s.Test(1).Success);
		}