2017-06-09 02:28:26 +08:00
|
|
|
<?php
|
|
|
|
|
2017-06-20 00:30:39 +08:00
|
|
|
use Carbon\Carbon;
|
2017-07-05 02:57:08 +08:00
|
|
|
use Illuminate\Support\Facades\Mail;
|
|
|
|
|
2017-07-14 04:43:56 +08:00
|
|
|
use Symfony\Component\Process\Process;
|
|
|
|
use Symfony\Component\Process\Exception\ProcessFailedException;
|
|
|
|
|
2017-06-20 00:30:39 +08:00
|
|
|
|
2017-06-09 02:28:26 +08:00
|
|
|
abstract class TestCase extends Illuminate\Foundation\Testing\TestCase
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* The base URL to use while testing the application.
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
2017-06-10 03:47:02 +08:00
|
|
|
protected $app;
|
2017-06-09 02:28:26 +08:00
|
|
|
protected $baseUrl = 'http://localhost';
|
2017-06-10 11:19:17 +08:00
|
|
|
protected $connectionsToTransact = ['testing'];
|
2017-06-09 02:28:26 +08:00
|
|
|
|
2017-12-12 20:48:04 +08:00
|
|
|
protected static $auth_headers = [
|
2017-12-31 03:39:56 +08:00
|
|
|
'x-api-key' => 'testadminapikey'
|
2017-12-12 20:48:04 +08:00
|
|
|
];
|
|
|
|
|
2017-12-13 10:18:02 +08:00
|
|
|
public function apiHeaders()
|
|
|
|
{
|
|
|
|
return self::$auth_headers;
|
|
|
|
}
|
|
|
|
|
2018-01-03 04:31:00 +08:00
|
|
|
public function headers($api_key)
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'content-type' => 'application/json',
|
|
|
|
'x-api-key' => $api_key
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2017-06-10 03:47:02 +08:00
|
|
|
public function __construct($name = null, array $data = [], $dataName = '') {
|
|
|
|
parent::__construct($name, $data, $dataName);
|
|
|
|
}
|
|
|
|
|
2017-07-05 02:09:44 +08:00
|
|
|
protected function reset_db() {
|
2017-07-14 04:43:56 +08:00
|
|
|
Artisan::call('database:create', ['--reset' => true]);
|
|
|
|
Artisan::call('migrate:refresh', ['--env' => 'unittest']);
|
2017-06-10 11:19:17 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
public function setUp() {
|
|
|
|
parent::setUp();
|
|
|
|
$this->reset_db();
|
|
|
|
}
|
|
|
|
|
2017-06-09 02:28:26 +08:00
|
|
|
/**
|
|
|
|
* Creates the application.
|
|
|
|
*
|
|
|
|
* @return \Illuminate\Foundation\Application
|
|
|
|
*/
|
|
|
|
public function createApplication()
|
|
|
|
{
|
|
|
|
$app = require __DIR__.'/../bootstrap/app.php';
|
|
|
|
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
|
2017-06-10 11:19:17 +08:00
|
|
|
//$app['config']->set('database.default','testing');
|
2017-06-09 02:28:26 +08:00
|
|
|
return $app;
|
|
|
|
}
|
2017-06-10 03:47:02 +08:00
|
|
|
|
|
|
|
public function createRepository($repo_name) {
|
|
|
|
$app = $this->createApplication();
|
2017-06-10 11:19:17 +08:00
|
|
|
return $app->make('App\Repositories\\' . $repo_name);
|
2017-06-10 03:47:02 +08:00
|
|
|
}
|
2017-06-20 00:30:39 +08:00
|
|
|
|
|
|
|
public function addData($file)
|
|
|
|
{
|
2017-07-05 02:57:08 +08:00
|
|
|
$svc = app('\App\Services\DatabaseService');
|
|
|
|
$file_path = base_path('tests/data/' . $file . '.yml');
|
|
|
|
$svc->seed_from_yaml_file($file_path);
|
2017-06-20 00:30:39 +08:00
|
|
|
}
|
2017-06-09 02:28:26 +08:00
|
|
|
}
|