@@ -31,7 +31,14 @@ class BelongsToValidatorTest extends \PHPUnit_Framework_TestCase
31
31
const ID = 123 ;
32
32
const INVALID_ID = 456 ;
33
33
34
+ /**
35
+ * @var \stdClass
36
+ */
34
37
protected $ valid ;
38
+
39
+ /**
40
+ * @var BelongsToValidator
41
+ */
35
42
protected $ validator ;
36
43
37
44
protected function setUp ()
@@ -45,6 +52,24 @@ protected function setUp()
45
52
$ this ->validator ->setTypes (static ::TYPE );
46
53
}
47
54
55
+ /**
56
+ * @return ErrorObject
57
+ */
58
+ protected function getError ()
59
+ {
60
+ if (1 !== count ($ this ->validator ->getErrors ())) {
61
+ $ this ->fail ('Did not find a single error. ' );
62
+ }
63
+
64
+ $ error = current ($ this ->validator ->getErrors ()->getAll ());
65
+
66
+ if (!$ error instanceof ErrorObject) {
67
+ $ this ->fail ('Not an error object. ' );
68
+ }
69
+
70
+ return $ error ;
71
+ }
72
+
48
73
public function testValid ()
49
74
{
50
75
$ this ->assertSame ($ this ->validator , $ this ->validator ->setTypes (static ::TYPE ));
@@ -71,38 +96,51 @@ public function testInvalidType()
71
96
72
97
$ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
73
98
74
- /** @var ErrorObject $error */
75
- $ error = current ($ this ->validator ->getErrors ()->getAll ());
76
-
77
- $ this ->assertInstanceOf (ErrorObject::class, $ error );
99
+ $ error = $ this ->getError ();
78
100
$ this ->assertEquals (BelongsToValidator::ERROR_INVALID_TYPE , $ error ->getCode ());
79
101
$ this ->assertEquals (400 , $ error ->getStatus ());
80
102
$ this ->assertEquals ('/data/type ' , $ error ->source ()->getPointer ());
81
103
}
82
104
105
+ public function testMissingType ()
106
+ {
107
+ unset($ this ->valid ->{Relationship::DATA }->{ResourceIdentifier::TYPE });
108
+
109
+ $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
110
+ $ error = $ this ->getError ();
111
+ $ this ->assertEquals (BelongsToValidator::ERROR_INCOMPLETE_IDENTIFIER , $ error ->getCode ());
112
+ $ this ->assertEquals (400 , $ error ->getStatus ());
113
+ $ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
114
+ }
115
+
83
116
public function testInvalidId ()
84
117
{
85
118
$ this ->valid ->{Relationship::DATA }->{ResourceIdentifier::ID } = null ;
86
119
$ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
87
120
88
- /** @var ErrorObject $error */
89
- $ error = current ($ this ->validator ->getErrors ()->getAll ());
90
-
91
- $ this ->assertInstanceOf (ErrorObject::class, $ error );
121
+ $ error = $ this ->getError ();
92
122
$ this ->assertEquals (BelongsToValidator::ERROR_INVALID_ID , $ error ->getCode ());
93
123
$ this ->assertEquals (400 , $ error ->getStatus ());
94
124
$ this ->assertEquals ('/data/id ' , $ error ->source ()->getPointer ());
95
125
}
96
126
127
+ public function testMissingId ()
128
+ {
129
+ unset($ this ->valid ->{Relationship::DATA }->{ResourceIdentifier::ID });
130
+
131
+ $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
132
+ $ error = $ this ->getError ();
133
+ $ this ->assertEquals (BelongsToValidator::ERROR_INCOMPLETE_IDENTIFIER , $ error ->getCode ());
134
+ $ this ->assertEquals (400 , $ error ->getStatus ());
135
+ $ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
136
+ }
137
+
97
138
public function testHasMany ()
98
139
{
99
140
$ this ->valid ->{Relationship::DATA } = [];
100
141
$ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
101
142
102
- /** @var ErrorObject $error */
103
- $ error = current ($ this ->validator ->getErrors ()->getAll ());
104
-
105
- $ this ->assertInstanceOf (ErrorObject::class, $ error );
143
+ $ error = $ this ->getError ();
106
144
$ this ->assertEquals (BelongsToValidator::ERROR_INVALID_VALUE , $ error ->getCode ());
107
145
$ this ->assertEquals (400 , $ error ->getStatus ());
108
146
$ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
@@ -120,10 +158,7 @@ public function testDoNotAcceptNull()
120
158
$ this ->assertSame ($ this ->validator , $ this ->validator ->setAllowEmpty (false ));
121
159
$ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
122
160
123
- /** @var ErrorObject $error */
124
- $ error = current ($ this ->validator ->getErrors ()->getAll ());
125
-
126
- $ this ->assertInstanceOf (ErrorObject::class, $ error );
161
+ $ error = $ this ->getError ();
127
162
$ this ->assertEquals (BelongsToValidator::ERROR_NULL_DISALLOWED , $ error ->getCode ());
128
163
$ this ->assertEquals (422 , $ error ->getStatus ());
129
164
$ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
@@ -155,10 +190,7 @@ public function testCallbackInvalid()
155
190
156
191
$ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
157
192
158
- /** @var ErrorObject $error */
159
- $ error = current ($ this ->validator ->getErrors ()->getAll ());
160
-
161
- $ this ->assertInstanceOf (ErrorObject::class, $ error );
193
+ $ error = $ this ->getError ();
162
194
$ this ->assertEquals (BelongsToValidator::ERROR_NOT_FOUND , $ error ->getCode ());
163
195
$ this ->assertEquals (404 , $ error ->getStatus ());
164
196
$ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
0 commit comments