main
1using jive;
2using Machine.Specifications;
3
4namespace specs.unit.utility
5{
6 public class OrSpecificationSpecs
7 {
8 [Subject(typeof (OrSpecification<>))]
9 public abstract class when_checking_if_one_of_two_conditions_are_met
10 {
11 static Specification<int> create_sut()
12 {
13 return new OrSpecification<int>(left.Object, right.Object);
14 }
15
16 Establish c = () =>
17 {
18 left = Create.an<Specification<int>>();
19 right = Create.an<Specification<int>>();
20 sut = create_sut();
21 };
22
23 static protected Moq.Mock<Specification<int>> left;
24 static protected Moq.Mock<Specification<int>> right;
25 static protected Specification<int> sut;
26 }
27
28 [Subject(typeof (OrSpecification<>))]
29 public class when_one_of_the_conditions_is_met : when_checking_if_one_of_two_conditions_are_met
30 {
31 It should_return_true = () => result.should_be_true();
32
33 Establish c = () => left.Setup(x => x.is_satisfied_by(1)).Returns(true);
34
35 Because b = () =>
36 {
37 result = sut.is_satisfied_by(1);
38 };
39
40 static bool result;
41 }
42
43 [Subject(typeof (OrSpecification<>))]
44 public class when_the_second_condition_is_met : when_checking_if_one_of_two_conditions_are_met
45 {
46 It should_return_true = () => result.should_be_true();
47
48 Establish c = () => right.Setup(x => x.is_satisfied_by(1)).Returns(true);
49
50 Because b = () =>
51 {
52 result = sut.is_satisfied_by(1);
53 };
54
55 static bool result;
56 }
57
58 [Subject(typeof (OrSpecification<>))]
59 public class when_neither_conditions_are_met : when_checking_if_one_of_two_conditions_are_met
60 {
61 It should_return_false = () => result.should_be_false();
62
63 Because b = () =>
64 {
65 result = sut.is_satisfied_by(1);
66 };
67
68 static bool result;
69 }
70 }
71}