Scalr\Tests\Util\Api\SpecTest::testSpecks PHP Method

testSpecks() public method

Check readOnly vs required Object properties
public testSpecks ( string $version, string $provider )
$version string api version
$provider string specifications type
    public function testSpecks($version, $provider)
    {
        $specs = new SpecManager($version, $provider);
        $definitions = $specs->getDefinitions('#^Api.*|Response$#');
        $this->assertNotEmpty($definitions);
        /* @var  $definition ObjectEntity */
        foreach ($definitions as $name => $definition) {
            $intersectProp = array_intersect($definition->required, $definition->readOnly);
            $this->assertEmpty($intersectProp, sprintf('The property %s is mutually exclusive. should be required or read-only. Object %s in %s spec', implode(', ', $intersectProp), $name, $provider));
            //discriminator must be in the required property list
            if (!empty($definition->discriminator)) {
                $this->assertTrue(in_array($definition->discriminator, $definition->required), sprintf('Property discriminator must be required Object %s in %s spec', $name, $provider));
            }
        }
    }