dentelis/phpunit-json-assert

PhpUnit extension for asserting json structure with dentelis/php-structure-validator

dev-main 2024-02-20 17:42 UTC

This package is auto-updated.

Last update: 2024-10-03 17:43:05 UTC


README

PHPUnit data structure validation for JSON documents

Installation

Use the package manager composer to install Validator.

composer require dentelis/phpunit-json-assert:dev-master

Usage

Add JsonAssertions trait to your test file

<?php
declare(strict_types=1);

use Dentelis\PhpUnitJsonAssert\JsonAssertions;
use Dentelis\StructureValidator\Type\ObjectType;
use Dentelis\StructureValidator\Type\StringType;
use PHPUnit\Framework\TestCase;

final class CustomTest extends TestCase
{
    use JsonAssertions;
    
    public function test(): void
    {
        $this->assertJsonStructure(
            '{"name":"user","email":"user@example.com"}',
             (new ObjectType())
                 ->addProperty('name', (new StringType())->assertNotEmpty())
                 ->addProperty('email', (new StringType())->assertEmail())
        );
    }
}