/** * @param string $currentUserId * @return IAccount[] */ public function findByUserId($currentUserId) { $accounts = $this->mapper->findByUserId($currentUserId); $accounts = array_map(function ($a) { return new Account($a); }, $accounts); if (count($accounts) > 1) { $unifiedAccount = $this->buildUnifiedAccount($currentUserId); $accounts = array_merge([$unifiedAccount], $accounts); } return $accounts; }
public function testFind() { /** @var MailAccount $b */ $b = $this->mapper->insert($this->account); $result = $this->mapper->find($b->getUserId(), $b->getId()); $this->assertEquals($b->toJson(), $result->toJson()); $result = $this->mapper->findByUserId($b->getUserId()); $c = array_filter($result, function ($a) use($b) { /** @var MailAccount $a */ return $a->getId() === $b->getId(); }); $c = array_pop($c); $this->assertEquals($b->toJson(), $c->toJson()); }