| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace Tests\Unit\Customer;
- use App\Customer;
- use App\Services\CustomerService;
- use Illuminate\Support\Str;
- use Tests\TestCase;
- class CustomerTest extends TestCase
- {
- /** @var CustomerService */
- public $service;
- public $data;
- protected function setUp(): void
- {
- parent::setUp();
- $this->service = app(CustomerService::class);
- $this->data = factory(Customer::class,3)->create()->toArray();
- }
- public function create(){
- $model = $this->service->create([
- "code" => date('Ymd').Str::random(4),
- "name" => date('Ymd').Str::random(5),
- "company_name" => date('Ymd').Str::random(6),
- ]);
- $this->assertNotNull($model);
- $this->data[] = $model;
- $this->assertEquals($model->code,$this->data["model"]["code"]);
- $this->assertEquals($model->name,$this->data["model"]["name"]);
- $this->assertEquals($model->company_name,$this->data["model"]["company_name"]);
- }
- public function testGetSelection(){
- $models = $this->service->getSelection(["id","name","company_name"]);
- $this->assertGreaterThanOrEqual(1,count($models));
- $this->assertArrayHasKey("company_name",$models[0]);
- }
- public function testPaginate(){
- $models = $this->service->paginate(5);
- $this->assertGreaterThanOrEqual(1,count($models));
- $this->assertLessThanOrEqual(5,count($models));
- }
- public function testFind(){
- $model = $this->service->find($this->data["model"]["id"]);
- $this->assertNotNull($model);
- }
- public function testUpdate()
- {
- $value = date('YmdH').Str::random(4);
- $row = $this->service->update(["id"=>$this->data[0]["id"]],[
- "name" => $value,
- ]);
- $this->data["model"]["name"] = $value;
- $this->assertEquals($row,1);
- }
- public function testDestroy()
- {
- $row = $this->service->destroy($this->data[0]["id"]);
- $this->assertEquals($row,1);
- $this->assertDeleted("customers", $this->data["model"]);
- }
- public function tearDown(): void
- {
- parent::tearDown();
- $ids = array_column($this->data,'id');
- $row = Customer::destroy($ids);
- $this->assertGreaterThan(0,$row);
- }
- }
|