public function test_login_uses_existing_user_if_matching_user_exists()
{
$providerAlias = 'provider';
$userDetails = new SocialNormUser([]);
$user = M::mock('Illuminate\\Contracts\\Auth\\Authenticatable')->shouldIgnoreMissing();
$auth = M::spy();
$users = M::spy(['findByIdentity' => $user]);
$identities = M::spy(['userExists' => true, 'getByProvider' => new OAuthIdentity()]);
$authenticator = new Authenticator($auth, $users, $identities);
$authenticator->login('provider', $userDetails);
$users->shouldNotHaveReceived('create');
$users->shouldHaveReceived('store')->with($user);
$identities->shouldHaveReceived('store');
$auth->shouldHaveReceived('login')->with($user, false);
}