public function assertUserWithNameExistsWithFields($username, TableNode $table)
{
Assertion::assertTrue($this->checkUserExistenceByUsername($username), "Couldn't find User with name '{$username}'.");
$user = $this->userService->loadUserByLogin($username);
$fieldsTable = $table->getTable();
array_shift($fieldsTable);
$updateFields = array();
foreach ($fieldsTable as $fieldRow) {
$fieldName = $fieldRow[0];
$expectedValue = $fieldRow[1];
switch ($fieldName) {
case 'email':
$fieldValue = $user->email;
break;
case 'password':
$fieldValue = $user->passwordHash;
$expectedValue = $this->createPasswordHash($username, $expectedValue, $user->hashAlgorithm);
break;
default:
$fieldValue = $user->getFieldValue($fieldName);
}
Assertion::assertEquals($expectedValue, $fieldValue, "Field '{$fieldName}' did not contain expected value '{$expectedValue}'.");
}
}