register(TauthzService::class); $app->initialize(); $app->console->call("tauthz:publish"); return $app; } /** * 初始数据 * * @return void */ protected function initTable() { Rule::where("1 = 1")->delete(true); Rule::create(['ptype' => 'p', 'v0' => 'alice', 'v1' => 'data1', 'v2' => 'read']); Rule::create(['ptype' => 'p', 'v0' => 'bob', 'v1' => 'data2', 'v2' => 'write']); Rule::create(['ptype' => 'p', 'v0' => 'data2_admin', 'v1' => 'data2', 'v2' => 'read']); Rule::create(['ptype' => 'p', 'v0' => 'data2_admin', 'v1' => 'data2', 'v2' => 'write']); Rule::create(['ptype' => 'g', 'v0' => 'alice', 'v1' => 'data2_admin']); } /** * Refresh the application instance. * * @return void */ protected function refreshApplication() { $this->app = $this->createApplication(); } protected function testing(Closure $closure) { $this->_setUp(); $closure(); $this->_tearDown(); } /** * This method is called before each test. */ protected function _setUp() { if (!$this->app) { $this->refreshApplication(); } $this->app->console->call("migrate:run"); $this->initTable(); } /** * This method is called after each test. */ protected function _tearDown() { if ($this->migrate) { $this->app->console->call("migrate:rollback"); } } }