/** * @param LoginUserCommand $command * * @return bool */ public function handle(LoginUserCommand $command) { // try to execute the same command before set the value $this->middleware->handle($command, $this->callback); $command->setPassword(sha1($command->password())); return $command->password(); }
/** * Test handle method. */ public function testHandleMessage() { $this->given($middleware = new LockingMiddleware())->and($event = new LoginUserMessage('*****@*****.**'))->and($callable = function (LoginUserMessage $event) { $event->setEmail('*****@*****.**'); })->when($middleware->handle($event, $callable))->then()->string($event->email())->isEqualTo('*****@*****.**'); $this->given($middleware = new LockingMiddleware())->and($event = new LoginUserMessage('*****@*****.**'))->and($callable = function (LoginUserMessage $event) { $event->setEmail('*****@*****.**'); throw new \InvalidArgumentException(); })->then()->exception(function () use($middleware, $event, $callable) { $middleware->handle($event, $callable); })->isInstanceOf(\InvalidArgumentException::class); $this->given($middleware = new LockingMiddleware())->and($callable = function (LoginUserMessage $event) { $event->setEmail(md5($event->email())); })->and($listener = new TriggerMessageOnListener($middleware, $callable))->and($event = new LoginUserMessage('*****@*****.**'))->when($middleware->handle($event, function ($event) use($listener) { $listener->onLogin($event); }))->then()->string($event->email())->isEqualTo(md5(sha1('*****@*****.**'))); }
/** * @param LoginUserMessage $event * * @return bool */ public function onLogin(LoginUserMessage $event) { // try to execute the same event before set the value $this->middleware->handle($event, $this->callback); $event->setEmail(sha1($event->email())); }