public static HttpClient CreateHttpClient()
 {
     AppSettings settings = new AppSettings();
     AccessTokenProvider loginProvider = new AccessTokenProvider();
     OAuth2BearerTokenHandler oauth2Handler = new OAuth2BearerTokenHandler(settings, loginProvider);
     HttpClient httpClient = HttpClientFactory.Create(oauth2Handler);
     httpClient.BaseAddress = new Uri(BaseAddress);
     httpClient.Timeout = TimeSpan.FromDays(1);
     return httpClient;
 }  
        public void Init()
        {
            user = new IdentityUser(userName);

            ClaimsIdentity identity = new ClaimsIdentity("ExternalBearer", factory.UserNameClaimType, factory.RoleClaimType);
            identity.AddClaim(new Claim(factory.UserIdClaimType, "FacebookID", ClaimValueTypes.String, provider));

            Mock<UserManager<IdentityUser>> mock =
                new Mock<UserManager<IdentityUser>>(new Mock<IUserStore<IdentityUser>>().Object);
            mock.Setup(mgr => mgr.CreateAsync(It.Is<IdentityUser>(u => u.UserName == userName), password))
                .Returns(Task.FromResult(IdentityResult.Success));
            mock.Setup(mgr => mgr.CreateAsync(It.Is<IdentityUser>(u => u.UserName == userName)))
                .Returns(Task.FromResult(IdentityResult.Success)); 
            mock.Setup(mgr => mgr.CreateAsync(It.Is<IdentityUser>(u => u.UserName == invalidUserName), password))
                .Returns(Task.FromResult(IdentityResult.Failed("User already exists")));
            mock.Setup(mgr => mgr.CreateAsync(It.Is<IdentityUser>(u => u.UserName == invalidUserName)))
                .Returns(Task.FromResult(IdentityResult.Failed("User already exists")));
            mock.Setup(mgr => mgr.FindAsync(userName, password)).Returns(Task.FromResult(user));
            mock.Setup(mgr => mgr.FindAsync(invalidUserName, password))
                .Returns(Task.FromResult<IdentityUser>(null));
            mock.Setup(mgr => mgr.FindAsync(userName, invalidPassword))
                .Returns(Task.FromResult<IdentityUser>(null));
            mock.Setup(mgr => mgr.CreateIdentityAsync(It.Is<IdentityUser>(u => u.UserName == userName), It.IsAny<string>()))
                .Returns((IdentityUser u, string authType) =>
                    Task.FromResult(new ClaimsIdentity(claims, authType, factory.UserNameClaimType, factory.RoleClaimType)));

            Startup.UserManagerFactory = () => mock.Object;
            Startup.OAuthOptions.Provider = new ApplicationOAuthProvider(Startup.PublicClientId, Startup.UserManagerFactory);
            Startup.OAuthOptions.AccessTokenProvider = new AuthenticationTokenProvider()
            {
                OnReceive = context =>
                {
                    if (context.Token == externalToken)
                    {
                        context.SetTicket(
                            new AuthenticationTicket(identity,
                            new AuthenticationProperties() { ExpiresUtc = DateTimeOffset.Now.AddDays(1) }));
                    }
                }
            };

            server = TestServer.Create(app => 
            {
                new Todo.Web.Startup().Configuration(app);
                HttpConfiguration config = new HttpConfiguration();
                WebApiConfig.Register(config);
                app.UseWebApi(config);
            });

            oAuthHandler = new OAuth2BearerTokenHandler(new InMemoryAccessTokenStore(), new NullAccessTokenProvider());
            DelegatingHandler testHandler = new NonDisposableRequestHandler();
            client = new AccountClient(HttpClientFactory.Create(server.Handler, oAuthHandler, testHandler));
            client.HttpClient.BaseAddress = new Uri("http://localhost/");

            claims = new List<Claim>()
            {
                new Claim(factory.UserIdClaimType, user.Id, "http://www.w3.org/2001/XMLSchema#string"),
                new Claim(factory.UserNameClaimType, userName, "http://www.w3.org/2001/XMLSchema#string"),
                new Claim(
                    "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", 
                    "ASP.NET Identity", 
                    "http://www.w3.org/2001/XMLSchema#string")
            };
        }