/** * @test */ public function testHandleWithParsingErrorWithoutMessage() { $userId = $this->getApplicationUserId(42); $userName = '******'; $user = \Mockery::mock(ParsingUser::class, function ($user) use($userId, $userName) { $user->shouldReceive('getId')->andReturn($userId); $user->shouldReceive('getName')->andReturn($userName); $user->shouldReceive('getAccount')->andReturn(\Mockery::mock(Account::class)); }); $message = new \stdClass(); $exception = \Mockery::mock('\\MessageApp\\Parser\\Exception\\MessageParserException'); $exception->shouldReceive('getUser')->andReturn($user); $parser = \Mockery::mock('\\MessageApp\\Parser\\MessageParser'); $parser->shouldReceive('parse')->andThrow($exception); $this->logger->shouldReceive('info')->twice(); $this->logger->shouldReceive('error')->once(); $this->logger->shouldReceive('warning')->once(); $this->messageSender->shouldReceive('send')->never(); $this->factory->shouldReceive('buildMessage')->with(\Mockery::on(function ($users) { $this->assertCount(1, $users); $this->assertInstanceOf(UndefinedApplicationUser::class, $users[0]); return true; }), $exception)->andReturn(null); $hangmanApp = new MessageApplication($this->messageSender, $parser, $this->factory, $this->getCommandBus()); $hangmanApp->setLogger($this->logger); $hangmanApp->handle($message); }
private function givenTheMessageCanNotBeBuilt() { $this->factory->shouldReceive('buildMessage')->with([$this->user], $this->event)->andReturn(null); }