summaryrefslogtreecommitdiff
path: root/spec/unit/utility/OrSpecificationSpecs.cs
blob: 9843d916baa3b175b47dd683077bc7c3fafa8dcc (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 jive.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;
    }
  }
}