/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakedc/users/tests/TestCase/Mailer
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakedc/users/tests/TestCase/Mailer/UsersMailerTest.php (5096B)
Email = $this->getMockBuilder('Cake\Mailer\Message')
->setMethods(['setTo', 'setSubject', 'setViewVars', 'setTemplate'])
->getMock();
$this->UsersMailer = $this->getMockBuilder('CakeDC\Users\Mailer\UsersMailer')
->setMethods(['setViewVars'])
->getMock();
$this->UsersMailer->setMessage($this->Email);
}
/**
* tearDown
*
* @return void
*/
public function tearDown(): void
{
unset($this->UsersMailer);
unset($this->Email);
parent::tearDown();
}
/**
* test sendValidationEmail
*
* @return void
*/
public function testValidation()
{
$table = TableRegistry::getTableLocator()->get('CakeDC/Users.Users');
$data = [
'first_name' => 'FirstName',
'email' => 'test@example.com',
'token' => '12345',
];
$user = $table->newEntity($data);
$this->Email->expects($this->once())
->method('setTo')
->with($user['email'])
->will($this->returnValue($this->Email));
$this->Email->expects($this->once())
->method('setSubject')
->with('FirstName, Your account validation link')
->will($this->returnValue($this->Email));
$this->UsersMailer->expects($this->once())
->method('setViewVars')
->with($data)
->will($this->returnValue($this->UsersMailer));
$this->invokeMethod($this->UsersMailer, 'validation', [$user]);
}
/**
* test SocialAccountValidation
*
* @return void
*/
public function testSocialAccountValidation()
{
$social = TableRegistry::getTableLocator()->get('CakeDC/Users.SocialAccounts')
->get('00000000-0000-0000-0000-000000000001', ['contain' => 'Users']);
$this->Email->expects($this->once())
->method('setTo')
->with('user-1@test.com')
->will($this->returnValue($this->Email));
$this->Email->expects($this->once())
->method('setSubject')
->with('first1, Your social account validation link')
->will($this->returnValue($this->Email));
$this->UsersMailer->expects($this->once())
->method('setViewVars')
->with(['user' => $social->user, 'socialAccount' => $social])
->will($this->returnValue($this->UsersMailer));
$this->invokeMethod($this->UsersMailer, 'socialAccountValidation', [$social->user, $social]);
}
/**
* test sendValidationEmail including 'template'
*
* @return void
*/
public function testResetPassword()
{
$table = TableRegistry::getTableLocator()->get('CakeDC/Users.Users');
$data = [
'first_name' => 'FirstName',
'email' => 'test@example.com',
'token' => '12345',
];
$user = $table->newEntity($data);
$this->Email->expects($this->once())
->method('setTo')
->with($user['email'])
->will($this->returnValue($this->Email));
$this->Email->expects($this->once())
->method('setSubject')
->with('FirstName, Your reset password link')
->will($this->returnValue($this->Email));
$this->UsersMailer->expects($this->once())
->method('setViewVars')
->with($data)
->will($this->returnValue($this->UsersMailer));
$this->invokeMethod($this->UsersMailer, 'resetPassword', [$user]);
}
/**
* Call protected/private method of a class.
*
* @param object &$object Instantiated object that we will run method on.
* @param string $methodName Method name to call
* @param array $parameters Array of parameters to pass into method.
*
* @return mixed Method return.
*/
public function invokeMethod(&$object, $methodName, $parameters = [])
{
$reflection = new \ReflectionClass(get_class($object));
$method = $reflection->getMethod($methodName);
$method->setAccessible(true);
return $method->invokeArgs($object, $parameters);
}
}