/** * @param stdClass $repository * @return Entity\Module */ public function register($repository) { $isUpdate = false; $module = $this->moduleMapper->findByUrl($repository->html_url); if ($module) { $isUpdate = true; } else { $module = new Entity\Module(); } $module->setName($repository->name); $module->setDescription($repository->description); $module->setUrl($repository->html_url); $module->setOwner($repository->owner->login); $module->setPhotoUrl($repository->owner->avatar_url); if ($isUpdate) { $this->moduleMapper->update($module); } else { $this->moduleMapper->insert($module); } return $module; }
public function testFindByLikeMatchesEntitiesWhereAllWordsExist() { $value = 'foo bar baz qux'; $query = 'foo baz'; $module = $this->module(); $module->setDescription($value); $this->mapper->insert($module); $moduleFoo = $this->module(); $moduleFoo->setDescription('foo'); $this->mapper->insert($moduleFoo); $moduleBaz = $this->module(); $moduleBaz->setDescription('baz'); $this->mapper->insert($moduleBaz); /* @var Db\ResultSet\HydratingResultSet $resultSet */ $resultSet = $this->mapper->findByLike($query); $this->assertCount(1, $resultSet); /* @var Entity\Module $result */ $result = $resultSet->current(); $this->assertInstanceOf(Entity\Module::class, $result); $this->assertSame($result->getDescription(), $module->getDescription()); }