summaryrefslogtreecommitdiff
path: root/spec/unit/utility/OrSpecificationSpecs.cs
blob: 54bc41864e2a7b25b06c0ce1f8590654a1d9db17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using gorilla.utility;
using Machine.Specifications;

namespace specs.unit.utility
{
    public class OrSpecificationSpecs
    {
        [Subject(typeof (OrSpecification<>))]
        public abstract class when_checking_if_one_of_two_conditions_are_met
        {
            static Specification<int> create_sut()
            {
                return new OrSpecification<int>(left.Object, right.Object);
            }

            Establish c = () =>
            {
                left = Create.an<Specification<int>>();
                right = Create.an<Specification<int>>();
                sut = create_sut();
            };

            static protected Moq.Mock<Specification<int>> left;
            static protected Moq.Mock<Specification<int>> right;
            static protected Specification<int> sut;
        }

        [Subject(typeof (OrSpecification<>))]
        public class when_one_of_the_conditions_is_met : when_checking_if_one_of_two_conditions_are_met
        {
            It should_return_true = () => result.should_be_true();

            Establish c = () => left.Setup(x => x.is_satisfied_by(1)).Returns(true);

            Because b = () =>
            {
                result = sut.is_satisfied_by(1);
            };

            static bool result;
        }

        [Subject(typeof (OrSpecification<>))]
        public class when_the_second_condition_is_met : when_checking_if_one_of_two_conditions_are_met
        {
            It should_return_true = () => result.should_be_true();

            Establish c = () => right.Setup(x => x.is_satisfied_by(1)).Returns(true);

            Because b = () =>
            {
                result = sut.is_satisfied_by(1);
            };

            static bool result;
        }

        [Subject(typeof (OrSpecification<>))]
        public class when_neither_conditions_are_met : when_checking_if_one_of_two_conditions_are_met
        {
            It should_return_false = () => result.should_be_false();

            Because b = () =>
            {
                result = sut.is_satisfied_by(1);
            };

            static bool result;
        }
    }
}