public void Test_EndsWith_NullMatches()
        {
            var s = new EndsWithSpecification("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_EndsWith_StrictCasing()
        {
            var s = new EndsWithSpecification("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("afoo").Success);
            Assert.IsTrue(s.Test("Foo").Success);
            Assert.IsTrue(s.Test("aFoo").Success);
            Assert.IsTrue(s.Test("AFoo").Success);
        }
        public void Test_EndsWith_IgnoreCasing()
        {
            var s = new EndsWithSpecification("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);
        }
        public void Test_EndsWith_InvalidType()
        {
            var s = new EndsWithSpecification("Foo", false, false);

            Assert.IsFalse(s.Test(1).Success);
        }
		public void Test_EndsWith_InvalidType()
		{
			var s = new EndsWithSpecification("Foo", false, false);
			Assert.IsFalse(s.Test(1).Success);
		}
		public void Test_EndsWith_NullMatches()
		{
			var s = new EndsWithSpecification("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_EndsWith_IgnoreCasing()
		{
			var s = new EndsWithSpecification("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);
		}
		public void Test_EndsWith_StrictCasing()
		{
			var s = new EndsWithSpecification("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("afoo").Success);
			Assert.IsTrue(s.Test("Foo").Success);
			Assert.IsTrue(s.Test("aFoo").Success);
			Assert.IsTrue(s.Test("AFoo").Success);
		}