コード例 #1
0
 public function test_can_create_categories()
 {
     $result = $this->repository->create(['name' => 'Category 4', 'description' => 'Description 4']);
     $this->assertInstanceOf(Category::class, $result);
     $this->assertEquals('Category 4', $result->name);
     $this->assertEquals('Description 4', $result->description);
     $result = $this->repository->all();
     $this->assertCount(4, $result);
     $result = Category::find(4);
     $this->assertEquals('Category 4', $result->name);
     $this->assertEquals('Description 4', $result->description);
 }
 public function test_can_ignore_criteria_with_apply_criteria()
 {
     $this->createCategoryDescription();
     $criteria1 = new FindByDescription('Description');
     $criteria2 = new OrderDescByName();
     $this->repository->addCriteria($criteria1)->addCriteria($criteria2)->ignoreCriteria()->applyCriteria();
     $reflectionClass = new \ReflectionClass($this->repository);
     $reflectionProperty = $reflectionClass->getProperty('model');
     $reflectionProperty->setAccessible(true);
     $result = $reflectionProperty->getValue($this->repository);
     $this->assertInstanceOf(Category::class, $result);
     $this->repository->ignoreCriteria(false)->applyCriteria();
     $this->assertInstanceOf(CategoryRepository::class, $this->repository);
     $result = $this->repository->all();
     $this->assertCount(3, $result);
     $this->assertEquals($result[0]->name, 'Category B');
     $this->assertEquals($result[1]->name, 'Category B');
     $this->assertEquals($result[2]->name, 'Category A');
 }