2017-02-04 19:58:42 +08:00
|
|
|
<?php namespace Tests;
|
2015-07-13 03:01:42 +08:00
|
|
|
|
2017-02-05 22:20:59 +08:00
|
|
|
use BookStack\Book;
|
|
|
|
use BookStack\Chapter;
|
|
|
|
use BookStack\Repos\EntityRepo;
|
|
|
|
use BookStack\Role;
|
2017-02-05 22:37:50 +08:00
|
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
2017-02-04 19:58:42 +08:00
|
|
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
2015-09-03 01:26:33 +08:00
|
|
|
|
2017-02-04 19:58:42 +08:00
|
|
|
abstract class TestCase extends BaseTestCase
|
2015-07-13 03:01:42 +08:00
|
|
|
{
|
2017-02-04 19:58:42 +08:00
|
|
|
use CreatesApplication;
|
2017-02-05 22:37:50 +08:00
|
|
|
use DatabaseTransactions;
|
2017-02-05 22:20:59 +08:00
|
|
|
|
|
|
|
protected $admin;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the current user context to be an admin.
|
|
|
|
* @return $this
|
|
|
|
*/
|
|
|
|
public function asAdmin()
|
|
|
|
{
|
|
|
|
return $this->actingAs($this->getAdmin());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the current admin user.
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function getAdmin() {
|
|
|
|
if($this->admin === null) {
|
|
|
|
$adminRole = Role::getSystemRole('admin');
|
|
|
|
$this->admin = $adminRole->users->first();
|
|
|
|
}
|
|
|
|
return $this->admin;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create and return a new book.
|
|
|
|
* @param array $input
|
|
|
|
* @return Book
|
|
|
|
*/
|
|
|
|
public function newBook($input = ['name' => 'test book', 'description' => 'My new test book']) {
|
|
|
|
return $this->app[EntityRepo::class]->createFromInput('book', $input, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create and return a new test chapter
|
|
|
|
* @param array $input
|
|
|
|
* @param Book $book
|
|
|
|
* @return Chapter
|
|
|
|
*/
|
|
|
|
public function newChapter($input = ['name' => 'test chapter', 'description' => 'My new test chapter'], Book $book) {
|
|
|
|
return $this->app[EntityRepo::class]->createFromInput('chapter', $input, $book);
|
|
|
|
}
|
2017-02-04 19:58:42 +08:00
|
|
|
}
|