Пример #1
0
        public void CanCombineSpecificationsUsingXor()
        {
            Specification <string> isLowercase = new IsLowercaseSpecification();
            Specification <string> startsWithF = new StartsWithFSpecification();

            Assert.IsFalse(isLowercase.Xor(startsWithF).IsSatisfiedBy("foo"), "foo (both)");
            Assert.IsTrue(isLowercase.Xor(startsWithF).IsSatisfiedBy("fl4M1ng0"), "fl4M1ng0 (starts with f)");
            Assert.IsTrue(isLowercase.Xor(startsWithF).IsSatisfiedBy("bar"), "bar (lowercase)");
            Assert.IsFalse(isLowercase.Xor(startsWithF).IsSatisfiedBy("Bassoon"), "Bassoon (neither)");
        }
Пример #2
0
        public void CanFilterByNotSpecification()
        {
            Specification <string> isLowercase        = new IsLowercaseSpecification();
            Specification <string> isNotJustLowercase = new NotSpecification <string>(isLowercase);

            Assert.IsTrue(isLowercase.IsSatisfiedBy("foo"));
            Assert.IsFalse(isLowercase.IsSatisfiedBy("Bar"));

            Assert.IsFalse(isNotJustLowercase.IsSatisfiedBy("foo"));
            Assert.IsTrue(isNotJustLowercase.IsSatisfiedBy("Bar"));
        }