1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11: namespace expect;
12:
13: use expect\matcher\ReportableMatcher;
14:
15: class Result
16: {
17: 18: 19:
20: private $actual;
21:
22: 23: 24:
25: private $negated;
26:
27: 28: 29:
30: private $matcher;
31:
32: 33: 34:
35: private $result;
36:
37: public function __construct($actual, $negated, ReportableMatcher $matcher, $result)
38: {
39: $this->actual = $actual;
40: $this->negated = $negated;
41: $this->matcher = $matcher;
42: $this->result = $result;
43: }
44:
45: public function isPassed()
46: {
47: return $this->result;
48: }
49:
50: public function isFailed()
51: {
52: return $this->isPassed() === false;
53: }
54:
55: public function reportTo(ResultReporter $reporter)
56: {
57: if ($this->isPassed()) {
58: return;
59: }
60: $this->reportFailed($reporter);
61: }
62:
63: private function reportFailed(ResultReporter $reporter)
64: {
65: $message = new FailedMessage();
66:
67: if ($this->negated) {
68: $this->matcher->reportNegativeFailed($message);
69: $reporter->reportNegativeFailed($message);
70: } else {
71: $this->matcher->reportFailed($message);
72: $reporter->reportFailed($message);
73: }
74: }
75: }
76: