function let(Options $options, Language $language, \PHPMailer $mailer) { $prophet = new Prophet(); //OPTIONS MOCKING $options = $options->options; $options_object = $prophet->prophesize('PolyAuth\\Options'); $options_object->offsetGet(Argument::any())->will(function ($args) use(&$options) { $key = $args[0]; return $options[$key]; }); $options_object->offsetSet(Argument::cetera())->will(function ($args) use(&$options) { if (is_null($args[0])) { $options[] = $args[1]; } else { $options[$args[0]] = $args[1]; } }); $options_object = $options_object->reveal(); //LOGGER MOCKING $logger = $prophet->prophesize(); $logger->willExtend('stdClass'); $logger->willImplement('Psr\\Log\\LoggerInterface'); $logger->error(Argument::type('string'), Argument::type('array'))->willReturn(true); $logger = $logger->reveal(); //MAILER MOCKING $mailer->AddAddress(Argument::any())->willReturn(true); $mailer->Send()->willReturn(true); $mailer->__destruct()->willReturn(true); $mailer->IsHTML(Argument::any())->willReturn(true); $this->beConstructedWith($options_object, $language, $logger, $mailer); //USER MOCKING $user_data = array('id' => 1, 'username' => 'CMCDragonkai', 'email' => '*****@*****.**', 'activationCode' => 'ABCDEFG', 'forgottenCode' => '1234567'); $user_object = $prophet->prophesize('PolyAuth\\UserAccount'); $user_object->offsetGet(Argument::any())->will(function ($args) use(&$user_data) { $key = $args[0]; return $user_data[$key]; }); $user_object->offsetSet(Argument::cetera())->will(function ($args) use(&$user_data) { if (is_null($args[0])) { $user_data[] = $args[1]; } else { $user_data[$args[0]] = $args[1]; } }); $this->user = $user_object->reveal(); }
function __destruct() { parent::__destruct(); }