<?php namespace Tests; trait InteractsWithDatabase { /** * Assert that a given where condition exists in the database. * * @param string $table * @param array $data * @param string $connection * @return $this */ protected function seeInDatabase($table, array $data, $connection = null) { $database = $this->app->make('db'); $connection = $connection ?: $database->getDefaultConnection(); $count = $database->connection($connection)->table($table)->where($data)->count(); $this->assertGreaterThan(0, $count, sprintf( 'Unable to find row in database table [%s] that matched attributes [%s].', $table, json_encode($data) )); return $this; } /** * Assert that a given where condition does not exist in the database. * * @param string $table * @param array $data * @param string $connection * @return $this */ protected function missingFromDatabase($table, array $data, $connection = null) { return $this->notSeeInDatabase($table, $data, $connection); } /** * Assert that a given where condition does not exist in the database. * * @param string $table * @param array $data * @param string $connection * @return $this */ protected function dontSeeInDatabase($table, array $data, $connection = null) { return $this->notSeeInDatabase($table, $data, $connection); } /** * Assert that a given where condition does not exist in the database. * * @param string $table * @param array $data * @param string $connection * @return $this */ protected function notSeeInDatabase($table, array $data, $connection = null) { $database = $this->app->make('db'); $connection = $connection ?: $database->getDefaultConnection(); $count = $database->connection($connection)->table($table)->where($data)->count(); $this->assertEquals(0, $count, sprintf( 'Found unexpected records in database table [%s] that matched attributes [%s].', $table, json_encode($data) )); return $this; } /** * Seed a given database connection. * * @param string $class * @return void */ public function seed($class = 'DatabaseSeeder') { $this->artisan('db:seed', ['--class' => $class]); } }