提交 55ef4dcc 编写于 作者: 孙建华

tests

上级 6eb20d9c
<?php
use Faker\Generator as Faker;
$factory->define(App\Model\Admin\Entity::class, function (Faker $faker) {
return [
'name' => $faker->word,
'table_name' => $faker->domainWord,
];
});
......@@ -3,6 +3,7 @@
namespace Tests\Feature\Admin;
use App\Model\Admin\AdminUser;
use App\Model\Admin\Entity;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Schema;
......@@ -12,28 +13,41 @@ class EntityControllerTest extends TestCase
{
use RefreshDatabase;
protected $user;
public function setUp()
{
parent::setUp();
$this->withoutExceptionHandling();
$this->user = factory(AdminUser::class)->create();
}
public function testEntityCanBeListed()
{
factory(Entity::class, 1)->create();
$response = $this->actingAs($this->user, 'admin')->get('/admin/entities/list');
$response->assertStatus(200);
$content = $response->original;
$this->assertEquals(1, $content['count']);
}
public function testEntityCanBeCreated()
{
$user = factory(AdminUser::class)->create();
$data = ['name' => '测试', 'table_name' => 'tests'];
$response = $this->actingAs($user, 'admin')
$response = $this->actingAs($this->user, 'admin')
->post('/admin/entities', $data);
$response->assertJson(['code' => 0]);
$response = $this->actingAs($user, 'admin')
$response = $this->actingAs($this->user, 'admin')
->post('/admin/entities', $data);
$response->assertJson(['code' => 1]);
}
public function testEntityBeCreatedWhenTableHasExists()
{
$user = factory(AdminUser::class)->create();
$data = ['name' => '测试', 'table_name' => 'tests'];
Schema::create($data['table_name'], function (Blueprint $table) {
$table->increments('id');
......@@ -41,7 +55,7 @@ class EntityControllerTest extends TestCase
$table->engine = 'InnoDB';
});
$response = $this->actingAs($user, 'admin')
$response = $this->actingAs($this->user, 'admin')
->post('/admin/entities', $data);
$response->assertJson(['code' => 2]);
}
......
<?php
namespace Tests\Feature\Admin;
use App\Model\Admin\AdminUser;
use App\Model\Admin\EntityField;
use App\Repository\Admin\EntityRepository;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Schema;
use Tests\TestCase;
class EntityFieldControllerTest extends TestCase
{
use RefreshDatabase;
protected $entity;
protected $user;
public function setUp()
{
parent::setUp();
$this->withoutExceptionHandling();
$data = ['name' => '测试', 'table_name' => 'tests'];
$this->entity = EntityRepository::add($data);
$this->user = factory(AdminUser::class)->create();
}
public function testEntityFieldCanBeCreated()
{
$data = [
'entity_id' => $this->entity->id,
'name' => 'title',
'type' => 'string',
'form_name' => '标题',
'form_type' => 'input',
'order' => 77,
'field_length' => '',
'field_total' => '',
'field_scale' => '',
'comment' => '',
'default_value' => ''
];
$response = $this->actingAs($this->user, 'admin')
->post('/admin/entityFields', $data);
$response->assertJson(['code' => 0]);
$this->assertDatabaseHas('entity_fields', ['entity_id' => $this->entity->id, 'name' => 'title']);
$this->assertTrue(Schema::hasColumn($this->entity->table_name, $data['name']));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册