@@ -31,7 +31,14 @@ class BelongsToValidatorTest extends \PHPUnit_Framework_TestCase
3131 const ID = 123 ;
3232 const INVALID_ID = 456 ;
3333
34+ /**
35+ * @var \stdClass
36+ */
3437 protected $ valid ;
38+
39+ /**
40+ * @var BelongsToValidator
41+ */
3542 protected $ validator ;
3643
3744 protected function setUp ()
@@ -45,6 +52,24 @@ protected function setUp()
4552 $ this ->validator ->setTypes (static ::TYPE );
4653 }
4754
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+
4873 public function testValid ()
4974 {
5075 $ this ->assertSame ($ this ->validator , $ this ->validator ->setTypes (static ::TYPE ));
@@ -71,38 +96,51 @@ public function testInvalidType()
7196
7297 $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
7398
74- /** @var ErrorObject $error */
75- $ error = current ($ this ->validator ->getErrors ()->getAll ());
76-
77- $ this ->assertInstanceOf (ErrorObject::class, $ error );
99+ $ error = $ this ->getError ();
78100 $ this ->assertEquals (BelongsToValidator::ERROR_INVALID_TYPE , $ error ->getCode ());
79101 $ this ->assertEquals (400 , $ error ->getStatus ());
80102 $ this ->assertEquals ('/data/type ' , $ error ->source ()->getPointer ());
81103 }
82104
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+
83116 public function testInvalidId ()
84117 {
85118 $ this ->valid ->{Relationship::DATA }->{ResourceIdentifier::ID } = null ;
86119 $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
87120
88- /** @var ErrorObject $error */
89- $ error = current ($ this ->validator ->getErrors ()->getAll ());
90-
91- $ this ->assertInstanceOf (ErrorObject::class, $ error );
121+ $ error = $ this ->getError ();
92122 $ this ->assertEquals (BelongsToValidator::ERROR_INVALID_ID , $ error ->getCode ());
93123 $ this ->assertEquals (400 , $ error ->getStatus ());
94124 $ this ->assertEquals ('/data/id ' , $ error ->source ()->getPointer ());
95125 }
96126
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+
97138 public function testHasMany ()
98139 {
99140 $ this ->valid ->{Relationship::DATA } = [];
100141 $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
101142
102- /** @var ErrorObject $error */
103- $ error = current ($ this ->validator ->getErrors ()->getAll ());
104-
105- $ this ->assertInstanceOf (ErrorObject::class, $ error );
143+ $ error = $ this ->getError ();
106144 $ this ->assertEquals (BelongsToValidator::ERROR_INVALID_VALUE , $ error ->getCode ());
107145 $ this ->assertEquals (400 , $ error ->getStatus ());
108146 $ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
@@ -120,10 +158,7 @@ public function testDoNotAcceptNull()
120158 $ this ->assertSame ($ this ->validator , $ this ->validator ->setAllowEmpty (false ));
121159 $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
122160
123- /** @var ErrorObject $error */
124- $ error = current ($ this ->validator ->getErrors ()->getAll ());
125-
126- $ this ->assertInstanceOf (ErrorObject::class, $ error );
161+ $ error = $ this ->getError ();
127162 $ this ->assertEquals (BelongsToValidator::ERROR_NULL_DISALLOWED , $ error ->getCode ());
128163 $ this ->assertEquals (422 , $ error ->getStatus ());
129164 $ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
@@ -155,10 +190,7 @@ public function testCallbackInvalid()
155190
156191 $ this ->assertFalse ($ this ->validator ->isValid ($ this ->valid ));
157192
158- /** @var ErrorObject $error */
159- $ error = current ($ this ->validator ->getErrors ()->getAll ());
160-
161- $ this ->assertInstanceOf (ErrorObject::class, $ error );
193+ $ error = $ this ->getError ();
162194 $ this ->assertEquals (BelongsToValidator::ERROR_NOT_FOUND , $ error ->getCode ());
163195 $ this ->assertEquals (404 , $ error ->getStatus ());
164196 $ this ->assertEquals ('/data ' , $ error ->source ()->getPointer ());
0 commit comments