Skip to content

Commit ae6c1c5

Browse files
committed
Tidy up validator tests.
1 parent 6250911 commit ae6c1c5

File tree

9 files changed

+83
-128
lines changed

9 files changed

+83
-128
lines changed

test/Validator/Attributes/AttributesValidatorTest.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
use CloudCreativity\JsonApi\Error\ErrorCollection;
2222
use CloudCreativity\JsonApi\Error\ErrorObject;
2323
use CloudCreativity\JsonApi\Error\SourceObject;
24+
use CloudCreativity\JsonApi\Validator\ValidatorTestCase;
2425
use Neomerx\JsonApi\Contracts\Document\ErrorInterface;
2526
use CloudCreativity\JsonApi\Contracts\Validator\ValidatorInterface;
2627

27-
class AttributesValidatorTest extends \PHPUnit_Framework_TestCase
28+
class AttributesValidatorTest extends ValidatorTestCase
2829
{
2930

3031
const KEY_A = 'foo';
@@ -83,10 +84,7 @@ public function testMissingRequired()
8384

8485
$this->assertFalse($validator->isValid($this->data));
8586

86-
/** @var ErrorInterface $error */
87-
$error = current($validator->getErrors()->getAll());
88-
89-
$this->assertInstanceOf(ErrorInterface::class, $error);
87+
$error = $this->getError($validator);
9088
$this->assertEquals(AttributesValidator::ERROR_REQUIRED_ATTRIBUTE, $error->getCode());
9189
$this->assertEquals(400, $error->getStatus());
9290
}
@@ -132,10 +130,7 @@ public function testKeyValidatorInvalid()
132130

133131
$this->assertFalse($validator->isValid($this->data));
134132

135-
/** @var ErrorInterface $err */
136-
$err = current($validator->getErrors()->getAll());
137-
138-
$this->assertInstanceOf(ErrorInterface::class, $err);
133+
$err = $this->getError($validator);
139134
$this->assertEquals($expected, $err);
140135
}
141136
}

test/Validator/Relationships/BelongsToValidatorTest.php

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818

1919
namespace CloudCreativity\JsonApi\Validator\Relationships;
2020

21-
use CloudCreativity\JsonApi\Error\ErrorObject;
2221
use CloudCreativity\JsonApi\Object\Relationships\Relationship;
2322
use CloudCreativity\JsonApi\Object\ResourceIdentifier\ResourceIdentifier;
23+
use CloudCreativity\JsonApi\Validator\ValidatorTestCase;
2424

25-
class BelongsToValidatorTest extends \PHPUnit_Framework_TestCase
25+
class BelongsToValidatorTest extends ValidatorTestCase
2626
{
2727

2828
const TYPE = 'foo';
@@ -52,24 +52,6 @@ protected function setUp()
5252
$this->validator->setTypes(static::TYPE);
5353
}
5454

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-
7355
public function testValid()
7456
{
7557
$this->assertSame($this->validator, $this->validator->setTypes(static::TYPE));
@@ -96,7 +78,7 @@ public function testInvalidType()
9678

9779
$this->assertFalse($this->validator->isValid($this->valid));
9880

99-
$error = $this->getError();
81+
$error = $this->getError($this->validator);
10082
$this->assertEquals(BelongsToValidator::ERROR_INVALID_TYPE, $error->getCode());
10183
$this->assertEquals(400, $error->getStatus());
10284
$this->assertEquals('/data/type', $error->source()->getPointer());
@@ -107,7 +89,7 @@ public function testMissingType()
10789
unset($this->valid->{Relationship::DATA}->{ResourceIdentifier::TYPE});
10890

10991
$this->assertFalse($this->validator->isValid($this->valid));
110-
$error = $this->getError();
92+
$error = $this->getError($this->validator);
11193
$this->assertEquals(BelongsToValidator::ERROR_INCOMPLETE_IDENTIFIER, $error->getCode());
11294
$this->assertEquals(400, $error->getStatus());
11395
$this->assertEquals('/data', $error->source()->getPointer());
@@ -118,7 +100,7 @@ public function testInvalidId()
118100
$this->valid->{Relationship::DATA}->{ResourceIdentifier::ID} = null;
119101
$this->assertFalse($this->validator->isValid($this->valid));
120102

121-
$error = $this->getError();
103+
$error = $this->getError($this->validator);
122104
$this->assertEquals(BelongsToValidator::ERROR_INVALID_ID, $error->getCode());
123105
$this->assertEquals(400, $error->getStatus());
124106
$this->assertEquals('/data/id', $error->source()->getPointer());
@@ -129,7 +111,7 @@ public function testMissingId()
129111
unset($this->valid->{Relationship::DATA}->{ResourceIdentifier::ID});
130112

131113
$this->assertFalse($this->validator->isValid($this->valid));
132-
$error = $this->getError();
114+
$error = $this->getError($this->validator);
133115
$this->assertEquals(BelongsToValidator::ERROR_INCOMPLETE_IDENTIFIER, $error->getCode());
134116
$this->assertEquals(400, $error->getStatus());
135117
$this->assertEquals('/data', $error->source()->getPointer());
@@ -140,7 +122,7 @@ public function testHasMany()
140122
$this->valid->{Relationship::DATA} = [];
141123
$this->assertFalse($this->validator->isValid($this->valid));
142124

143-
$error = $this->getError();
125+
$error = $this->getError($this->validator);
144126
$this->assertEquals(BelongsToValidator::ERROR_INVALID_VALUE, $error->getCode());
145127
$this->assertEquals(400, $error->getStatus());
146128
$this->assertEquals('/data', $error->source()->getPointer());
@@ -158,7 +140,7 @@ public function testDoNotAcceptNull()
158140
$this->assertSame($this->validator, $this->validator->setAllowEmpty(false));
159141
$this->assertFalse($this->validator->isValid($this->valid));
160142

161-
$error = $this->getError();
143+
$error = $this->getError($this->validator);
162144
$this->assertEquals(BelongsToValidator::ERROR_NULL_DISALLOWED, $error->getCode());
163145
$this->assertEquals(422, $error->getStatus());
164146
$this->assertEquals('/data', $error->source()->getPointer());
@@ -190,7 +172,7 @@ public function testCallbackInvalid()
190172

191173
$this->assertFalse($this->validator->isValid($this->valid));
192174

193-
$error = $this->getError();
175+
$error = $this->getError($this->validator);
194176
$this->assertEquals(BelongsToValidator::ERROR_NOT_FOUND, $error->getCode());
195177
$this->assertEquals(404, $error->getStatus());
196178
$this->assertEquals('/data', $error->source()->getPointer());

test/Validator/Relationships/HasManyValidatorTest.php

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
use CloudCreativity\JsonApi\Object\ResourceIdentifier\ResourceIdentifier;
2222
use CloudCreativity\JsonApi\Object\ResourceIdentifier\ResourceIdentifierCollection;
2323
use CloudCreativity\JsonApi\Object\Relationships\Relationship;
24-
use CloudCreativity\JsonApi\Error\ErrorObject;
24+
use CloudCreativity\JsonApi\Validator\ValidatorTestCase;
2525

26-
class HasManyValidatorTest extends \PHPUnit_Framework_TestCase
26+
class HasManyValidatorTest extends ValidatorTestCase
2727
{
2828

2929
const TYPE_A = 'foo';
@@ -58,24 +58,6 @@ protected function setUp()
5858
$this->validator->setTypes([static::TYPE_A, static::TYPE_B]);
5959
}
6060

61-
/**
62-
* @return ErrorObject
63-
*/
64-
protected function getError()
65-
{
66-
if (1 !== count($this->validator->getErrors())) {
67-
$this->fail('Did not find a single error.');
68-
}
69-
70-
$error = current($this->validator->getErrors()->getAll());
71-
72-
if (!$error instanceof ErrorObject) {
73-
$this->fail('Not an error object.');
74-
}
75-
76-
return $error;
77-
}
78-
7961
public function testValid()
8062
{
8163
$this->assertTrue($this->validator->isValid($this->input));
@@ -87,7 +69,7 @@ public function testNotValid()
8769
{
8870
$this->assertFalse($this->validator->isValid([]));
8971

90-
$error = $this->getError();
72+
$error = $this->getError($this->validator);
9173
$this->assertEquals(HasManyValidator::ERROR_INVALID_VALUE, $error->getCode());
9274
$this->assertEquals(400, $error->getStatus());
9375
}
@@ -97,7 +79,7 @@ public function testBelongsTo()
9779
$this->input->{Relationship::DATA} = null;
9880
$this->assertFalse($this->validator->isValid($this->input));
9981

100-
$error = $this->getError();
82+
$error = $this->getError($this->validator);
10183
$this->assertEquals(HasManyValidator::ERROR_INVALID_VALUE, $error->getCode());
10284
$this->assertEquals(400, $error->getStatus());
10385
$this->assertEquals('/data', $error->source()->getPointer());
@@ -108,7 +90,7 @@ public function testInvalidType()
10890
$this->validator->setTypes(static::TYPE_A);
10991
$this->assertFalse($this->validator->isValid($this->input));
11092

111-
$error = $this->getError();
93+
$error = $this->getError($this->validator);
11294
$this->assertEquals(HasManyValidator::ERROR_INVALID_TYPE, $error->getCode());
11395
$this->assertEquals(400, $error->getStatus());
11496
$this->assertEquals('/data/1/type', $error->source()->getPointer());
@@ -119,7 +101,7 @@ public function testMissingType()
119101
unset($this->b->{ResourceIdentifier::TYPE});
120102

121103
$this->assertFalse($this->validator->isValid($this->input));
122-
$error = $this->getError();
104+
$error = $this->getError($this->validator);
123105
$this->assertEquals(HasManyValidator::ERROR_INCOMPLETE_IDENTIFIER, $error->getCode());
124106
$this->assertEquals(400, $error->getStatus());
125107
$this->assertEquals('/data/1', $error->source()->getPointer());
@@ -130,7 +112,7 @@ public function testInvalidId()
130112
$this->b->{ResourceIdentifier::ID} = null;
131113
$this->assertFalse($this->validator->isValid($this->input));
132114

133-
$error = $this->getError();
115+
$error = $this->getError($this->validator);
134116
$this->assertEquals(HasManyValidator::ERROR_INVALID_ID, $error->getCode());
135117
$this->assertEquals(400, $error->getStatus());
136118
$this->assertEquals('/data/1/id', $error->source()->getPointer());
@@ -142,7 +124,7 @@ public function testMissingId()
142124
unset($this->b->{ResourceIdentifier::ID});
143125

144126
$this->assertFalse($this->validator->isValid($this->input));
145-
$error = $this->getError();
127+
$error = $this->getError($this->validator);
146128
$this->assertEquals(HasManyValidator::ERROR_INCOMPLETE_IDENTIFIER, $error->getCode());
147129
$this->assertEquals(400, $error->getStatus());
148130
$this->assertEquals('/data/1', $error->source()->getPointer());
@@ -154,7 +136,7 @@ public function testEmptyNotAcceptable()
154136
$this->assertSame($this->validator, $this->validator->setAllowEmpty(false));
155137
$this->assertFalse($this->validator->isValid($this->input));
156138

157-
$error = $this->getError();
139+
$error = $this->getError($this->validator);
158140
$this->assertEquals(HasManyValidator::ERROR_EMPTY_DISALLOWED, $error->getCode());
159141
$this->assertEquals(422, $error->getStatus());
160142
$this->assertEquals('/data', $error->source()->getPointer());
@@ -190,7 +172,7 @@ public function testCallbackInvalid()
190172

191173
$this->assertFalse($this->validator->isValid($this->input));
192174

193-
$error = $this->getError();
175+
$error = $this->getError($this->validator);
194176
$this->assertEquals(HasManyValidator::ERROR_INVALID_COLLECTION, $error->getCode());
195177
$this->assertEquals(400, $error->getStatus());
196178
$this->assertEquals('/data', $error->source()->getPointer());
@@ -207,7 +189,7 @@ public function testCallbackInvalidIndexes()
207189

208190
$this->assertFalse($this->validator->isValid($this->input));
209191

210-
$error = $this->getError();
192+
$error = $this->getError($this->validator);
211193
$this->assertEquals(HasManyValidator::ERROR_NOT_FOUND, $error->getCode());
212194
$this->assertEquals(404, $error->getStatus());
213195
$this->assertEquals('/data/1', $error->source()->getPointer());

test/Validator/Relationships/RelationshipsValidatorTest.php

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
use CloudCreativity\JsonApi\Error\ErrorObject;
2222
use CloudCreativity\JsonApi\Error\ErrorCollection;
2323
use CloudCreativity\JsonApi\Contracts\Validator\ValidatorInterface;
24+
use CloudCreativity\JsonApi\Validator\ValidatorTestCase;
2425

25-
class RelationshipsValidatorTest extends \PHPUnit_Framework_TestCase
26+
class RelationshipsValidatorTest extends ValidatorTestCase
2627
{
2728

2829
const KEY_A = 'foo';
@@ -74,10 +75,7 @@ public function testInvalidValue()
7475
{
7576
$this->assertFalse($this->validator->isValid(null));
7677

77-
/** @var ErrorObject $error */
78-
$error = current($this->validator->getErrors()->getAll());
79-
80-
$this->assertInstanceOf(ErrorObject::class, $error);
78+
$error = $this->getError($this->validator);
8179
$this->assertEquals(RelationshipsValidator::ERROR_INVALID_VALUE, $error->getCode());
8280
$this->assertEquals(400, $error->getStatus());
8381
}
@@ -105,10 +103,7 @@ public function testInvalidKey()
105103

106104
$this->assertFalse($this->validator->isValid($this->input));
107105

108-
/** @var ErrorObject $error */
109-
$error = current($this->validator->getErrors()->getAll());
110-
111-
$this->assertInstanceOf(ErrorObject::class, $error);
106+
$error = $this->getError($this->validator);
112107
$this->assertEquals($expected, $error);
113108
}
114109

@@ -120,10 +115,7 @@ public function testUnrecognisedKey()
120115

121116
$this->assertFalse($this->validator->isValid($this->input));
122117

123-
/** @var ErrorObject $error */
124-
$error = current($this->validator->getErrors()->getAll());
125-
126-
$this->assertInstanceOf(ErrorObject::class, $error);
118+
$error = $this->getError($this->validator);
127119
$this->assertEquals(RelationshipsValidator::ERROR_UNRECOGNISED_RELATIONSHIP, $error->getCode());
128120
$this->assertEquals(400, $error->getStatus());
129121
}
@@ -153,10 +145,7 @@ public function testRequired()
153145

154146
$this->assertFalse($this->validator->isValid($this->input));
155147

156-
/** @var ErrorObject $error */
157-
$error = current($this->validator->getErrors()->getAll());
158-
159-
$this->assertInstanceOf(ErrorObject::class, $error);
148+
$error = $this->getError($this->validator);
160149
$this->assertEquals(RelationshipsValidator::ERROR_REQUIRED_RELATIONSHIP, $error->getCode());
161150
$this->assertEquals(400, $error->getStatus());
162151
}

0 commit comments

Comments
 (0)