/**
  * @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());
 }