public void AuthorizeCallback_ExistingUser()
{
var db = new TestTweetHarborDbContext();
var ts = new Mock<ITweetHarborTwitterService>();
string token = Guid.NewGuid().ToString();
string verifier = Guid.NewGuid().ToString();
string TestUsername = "******";
string imageUrl = "http://test.com/image.jpg";
var user = UserHelper.ArrangeNewUserDefault();
db.Users.Add(user);
ts.Setup<OAuthAccessToken>(a => a.GetAccessToken(It.IsAny<OAuthRequestToken>(), It.IsAny<string>())).Returns(new OAuthAccessToken() { Token = token, TokenSecret = verifier });
ts.Setup<TwitterUser>(a => a.VerifyCredentials()).Returns(new TwitterUser() { ScreenName = TestUsername, ProfileImageUrl = imageUrl });
var auth = new Mock<IFormsAuthenticationWrapper>();
var controller = new AccountController(db, ts.Object, auth.Object);
controller.SetFakeControllerContext();
var val = controller.OAuthComplete(null, "Twitter", null);
Assert.AreEqual(1, db.Users.Count());
Assert.AreEqual(token, db.Users.First().AuthenticationAccounts.FirstOrDefault(ac => ac.AccountProvider == "twitter").OAuthToken);
Assert.AreEqual(verifier, db.Users.First().AuthenticationAccounts.FirstOrDefault(ac => ac.AccountProvider == "twitter").OAuthTokenSecret);
Assert.AreEqual(TestUsername, db.Users.First().AuthenticationAccounts.FirstOrDefault(ac => ac.AccountProvider == "twitter").UserName);
Assert.AreEqual(imageUrl, db.Users.First().UserProfilePicUrl);
}