/** * @param ReadableUser $user * @return int * @throws InsertUserException * @throws \Exception * @throws \mtoolkit\entity\model\role\exception\InsertRoleException */ public function save(ReadableUser $user) { $sql = "CALL mt_user_save(?, ?, ?, ?, ?, ?, ?, ?);"; $query = new MPDOQuery($sql, $this->connection); // $query->bindValue($user->getId()); $query->bindValue($user->getEmail()); $query->bindValue($user->getPassword()); $query->bindValue($user->getPhoneNumber()); $query->bindValue((int) $user->isTwoFactorEnabled()); $query->bindValue($user->getEnabledDate()->format("Y-m-d H:i:s")); $query->bindValue((int) $user->isEnabled()); $query->bindValue($user->getAccessFailedCount()); $query->bindValue($user->getUserName()); $queryResult = $query->exec(); if ($queryResult == false) { throw new InsertUserException($query->getLastError()->getDriverText()); } $result = $query->getResult(); $id = (int) $result[0]["id"]; for ($k = 0; $k < count($user->getRoleList()); $k++) { $role = $user->getRoleList()[$k]; $this->roleBook->saveRole($id, $role); } for ($k = 0; $k < count($user->getProviderUserList()); $k++) { $providerUser = $user->getProviderUserList()[$k]; $this->providerUserBook->save($id, $providerUser); } return (int) $id; }
public function testSaveAndGet() { for ($i = 0; $i < count($this->providerUserList); $i++) { /* @var $providerUser ProviderUser */ $providerUser = $this->providerUserList[$i]; $this->providerUserBook->save($this->providerUserList[$i]); $this->providerUserList[$i] = $providerUser; } $providerUsersInDB = $this->providerUserBook->get(); $this->assertEquals(count($this->providerUserList), count($providerUsersInDB)); for ($i = 0; $i < count($this->providerUserList); $i++) { $currentProviderUser = $this->providerUserList[$i]; $providerUsersInDb = $this->providerUserBook->get($currentProviderUser->getUserId(), $currentProviderUser->getProviderId(), $currentProviderUser->getProviderUserId()); $providerUserInDB = $providerUsersInDb[0]; $this->assertEquals($currentProviderUser, $providerUserInDB); } }