public function testAddItem() { list($repo, $itemRepo) = $this->getMocks(); $instance = new CategoryHandler($repo, $itemRepo); $mockEntity = m::mock('Xpressengine\\Category\\CategoryEntity'); $mockEntity->count = 0; $mockEntity->id = 1; $mockItemEntity = m::mock('Xpressengine\\Category\\CategoryItemEntity'); $mockItemEntity->id = 9; $itemRepo->shouldReceive('insert')->once()->with($mockItemEntity)->andReturn($mockItemEntity); $itemRepo->shouldReceive('insertHierarchy')->once()->with($mockItemEntity, null)->andReturnNull(); // parent $itemRepo->shouldReceive('fetchAsc')->once()->with($mockItemEntity, 1)->andReturn([]); // setOrder $itemRepo->shouldReceive('fetchProgenitor')->once()->with(1)->andReturn([$mockItemEntity]); $itemRepo->shouldReceive('update')->once()->with($mockItemEntity)->andReturnNull(); $repo->shouldReceive('increment')->once()->with($mockEntity, 1); $item = $instance->addItem($mockEntity, $mockItemEntity); $this->assertInstanceOf('Xpressengine\\Category\\CategoryItemEntity', $item); }