/var/www/flurhymez/vendor/laravel/framework/src/Illuminate/Testing/Constraints
Edit: /var/www/flurhymez/vendor/laravel/framework/src/Illuminate/Testing/Constraints/HasInDatabase.php (3045B)
data = $data;
$this->database = $database;
}
/**
* Check if the data is found in the given table.
*
* @param string $table
* @return bool
*/
public function matches($table): bool
{
return $this->database->table($table)->where($this->data)->count() > 0;
}
/**
* Get the description of the failure.
*
* @param string $table
* @return string
*/
public function failureDescription($table): string
{
return sprintf(
"a row in the table [%s] matches the attributes %s.\n\n%s",
$table, $this->toString(JSON_PRETTY_PRINT), $this->getAdditionalInfo($table)
);
}
/**
* Get additional info about the records found in the database table.
*
* @param string $table
* @return string
*/
protected function getAdditionalInfo($table)
{
$query = $this->database->table($table);
$similarResults = $query->where(
array_key_first($this->data),
$this->data[array_key_first($this->data)]
)->limit($this->show)->get();
if ($similarResults->isNotEmpty()) {
$description = 'Found similar results: '.json_encode($similarResults, JSON_PRETTY_PRINT);
} else {
$query = $this->database->table($table);
$results = $query->limit($this->show)->get();
if ($results->isEmpty()) {
return 'The table is empty.';
}
$description = 'Found: '.json_encode($results, JSON_PRETTY_PRINT);
}
if ($query->count() > $this->show) {
$description .= sprintf(' and %s others', $query->count() - $this->show);
}
return $description;
}
/**
* Get a string representation of the object.
*
* @param int $options
* @return string
*/
public function toString($options = 0): string
{
foreach ($this->data as $key => $data) {
$output[$key] = $data instanceof Expression ? (string) $data : $data;
}
return json_encode($output ?? [], $options);
}
}