public function testThatAuthenticationIsFiredWithFacebookData()
 {
     $container = $this->getContainer();
     $username = uniqid();
     $getResponseEvent = $this->getGetResponseEvent();
     $request = $getResponseEvent->getRequest();
     // these two are required to mock facebook authentication response
     $request->query->set('code', uniqid());
     $request->query->set('state', uniqid());
     // this one is required to mock user with this test username
     $container->get('laelaps.security.facebook.authentication_provider.main.facebook')->getUserProvider()->setPredefinedUser($username, $this->getUserMock($username));
     // this block of code is required to mock Facebook SDK user
     $firewallListener = $this->getFacebookFirewallListener();
     $facebook = $firewallListener->getFacebookAdapter();
     $facebook = FacebookAdapterMock::fromFacebookAdapter($facebook);
     $facebook->setUser($username);
     $firewallListener->setFacebookAdapter($facebook);
     // ...and now some assertions
     $securityContext = $container->get('security.context');
     $token = $securityContext->getToken();
     $this->assertNull($token, 'failed asserting that security context has no token before authentication');
     $firewallListener->handle($getResponseEvent);
     $token = $securityContext->getToken();
     $this->assertInstanceof('Laelaps\\Bundle\\FacebookAuthentication\\Security\\FacebookUserToken', $token, 'failed asserting that security context token is a Facebook user token');
     $this->assertSame($username, $token->getUsername(), 'failed asserting that security context token username is correct username');
     $this->assertTrue($token->isAuthenticated(), 'failed asserting that token is authenticated');
 }
 public function testThatMockedAdapterCanBeCreatedFromOtherAdapter()
 {
     $container = $this->getContainer();
     $config = ['appId' => $applicationId = uniqid(), 'secret' => $secret = uniqid()];
     $session = $container->get('session');
     $sessionNamespace = uniqid();
     $request = new Request();
     $facebookAdapter = new FacebookAdapter($config, $session, $sessionNamespace, $request, $container);
     $facebookAdapterMock = FacebookAdapterMock::fromFacebookAdapter($facebookAdapter);
     $this->assertInstanceOf('Laelaps\\Bundle\\Facebook\\FacebookAdapter\\FacebookAdapterMock', $facebookAdapterMock);
     $this->assertSame($applicationId, $facebookAdapterMock->getAppId());
     $this->assertSame($container, $facebookAdapterMock->getContainer());
     $this->assertSame($request, $facebookAdapterMock->getRequest());
     $this->assertSame($secret, $facebookAdapterMock->getAppSecret());
     $this->assertSame($session, $facebookAdapterMock->getSession());
 }