createMock(UserRepository::class); $repository->expects($this->once())->method('saveUser'); $sut = new LastLoginSubscriber($repository); $user = new User(); self::assertNull($user->getLastLogin()); $event = new UserInteractiveLoginEvent($user); $sut->onImplicitLogin($event); self::assertNotNull($user->getLastLogin()); } public function testOnLoginSuccessWithUser(): void { $repository = $this->createMock(UserRepository::class); $repository->expects($this->once())->method('saveUser'); $sut = new LastLoginSubscriber($repository); $user = new User(); self::assertNull($user->getLastLogin()); $authenticator = $this->createMock(AuthenticatorInterface::class); $passport = $this->createMock(Passport::class); $passport->method('getUser')->willReturn($user); $event = new LoginSuccessEvent($authenticator, $passport, new UsernamePasswordToken($user, 'sdf'), new Request(), null, 'xyz'); $sut->onFormLogin($event); self::assertNotNull($user->getLastLogin()); } }