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