Scalr\Tests\WebTestCase::assertResponseDataHasKeys PHP Method

assertResponseDataHasKeys() protected method

Asserts that response data array has necessary data keys.
protected assertResponseDataHasKeys ( array $keys, array $responseData, boolean $checkAll = false, string $dataColumnName = 'data' )
$keys array Array of the keys or Index array that looks like array($key => $constraint)
$responseData array Response array
$checkAll boolean optional Whether it should check all data array or only the first.
$dataColumnName string optional The name of the data column
    protected function assertResponseDataHasKeys($keys, $responseData, $checkAll = false, $dataColumnName = 'data')
    {
        $this->assertInternalType('array', $responseData);
        if (isset($responseData['success']) && $responseData['success'] === false && isset($responseData['errorMessage'])) {
            $this->assertTrue(false, "Server responded with error: " . $responseData['errorMessage']);
        }
        $this->assertTrue(isset($responseData['success']), 'There are not success data set in the response');
        $this->assertTrue($responseData['success'], 'success is not true');
        $this->assertArrayHasKey($dataColumnName, $responseData);
        if (!empty($responseData[$dataColumnName])) {
            $this->assertInternalType('array', $responseData[$dataColumnName]);
            foreach ($responseData[$dataColumnName] as $obj) {
                $this->assertNotEmpty($obj);
                $this->assertInternalType('array', $obj);
                foreach ($keys as $key => $val) {
                    if (is_numeric($key)) {
                        $this->assertArrayHasKey($val, $obj);
                    } else {
                        $this->assertArrayHasKey($key, $obj);
                        $this->assertThat($obj[$key], $val);
                    }
                }
                if (!$checkAll) {
                    break;
                }
            }
        }
    }