mathrix-education/openapi-assertions

Validate PSR-7 requests against OpenAPI specification. Heavily based on league/openapi-psr7-validator.

1.0.0 2019-12-13 20:24 UTC

This package is not auto-updated.

Last update: 2024-11-11 11:04:21 UTC


README

version license php-version

Base library of all Mathrix Education SA PHP projects.

Allow to test API responses against an OpenAPI v3 specification. Proudly maintained by Mathieu Bour mathieu@mathrix.fr, Vice-CTO.

The library heavily relies on league/openapi-psr7-validator formerly lezhnev74/openapi-psr7-validator.

Lumen

In order to use OpenAPI assertions with lumen, you need to install symfony/psr-http-message-bridge and nyholm/psr7. You can do it with:

composer require --dev nyholm/psr7 symfony/psr-http-message-bridge

Then, add the LumenOpenAPIAssertions trait to your base TestCase, like so:

use \Mathrix\OpenAPI\Assertions\Lumen\LumenOpenAPIAssertions;

class TestCase extends LumenTestCase {
    use LumenOpenAPIAssertions;
    
    public static function setupBeforeClass()
    {
        self::$openAPISpecificationPath = PATH_TO_SPEC_YAML;
        self::bootLumenOpenAPIAssertions();
    }
}

Usage

To test that an Illuminate Response matches the specification, simply run:

class TestBar extends TesCase {
    public function testFoo() {
        // Your test code
        $this->assertOpenAPIResponse($response); // Where response extends \Illuminate\Http\Response
    }
}