public function testItWillAddToErrorBagInvalidAttributeError() { $data = ['type' => 'post', 'attributes' => ['title000000' => 'My first blog post', 'content' => 'Ever heard of Lorem Ipsum?', 'author' => 1, 'comments' => []]]; try { DataAssertions::assert($data, $this->serializer, Post::class, $this->errorBag); } catch (DataException $e) { } $this->assertArrayContainsExpectedErrorType(InvalidAttributeError::class); }
/** * @param array $data * @param JsonApiSerializer $serializer * @param string $className * @param ErrorBag $errorBag * * @throws DataException */ public static function assertPost($data, JsonApiSerializer $serializer, $className, ErrorBag $errorBag) { try { DataAssertions::assert($data, $serializer, $className, $errorBag); self::assertRelationshipData($data, $serializer, $errorBag); } catch (DataException $e) { } $missing = self::missingCreationAttributes($data, $serializer); if (false === empty($missing)) { foreach ($missing as $attribute) { $errorBag[] = new MissingAttributeError($attribute); } } if ($errorBag->count() > 0) { throw new DataException(); } }