public async Task ItSavesAndReturnsANewAuthTokenIfLoginWasSuccessful() { CredentialsMessage credentialsMessage = new CredentialsMessage { UserName = "******", Password = "******" }; ApplicationUser loggedInUser = new ApplicationUser { Id = "some user id" }; autoMocker.Get <ApplicationUserManager>().Expect(mock => mock.FindAsync( Arg <string> .Matches(userName => userName == credentialsMessage.UserName), Arg <string> .Matches(password => password == credentialsMessage.Password))) .Return(Task.FromResult(loggedInUser)); String someNewAuthToken = "the auth token value"; autoMocker.Get <IAuthTokenGenerator>().Expect(mock => mock.GenerateAuthToken(loggedInUser.Id)).Return(someNewAuthToken); HttpResponseMessage actualResponse = await autoMocker.ClassUnderTest.Login(credentialsMessage); Assert.That(actualResponse.Content, Is.TypeOf(typeof(ObjectContent <NewAuthTokenMessage>))); ObjectContent <NewAuthTokenMessage> content = actualResponse.Content as ObjectContent <NewAuthTokenMessage>; NewAuthTokenMessage newAuthTokenMessage = content.Value as NewAuthTokenMessage; Assert.That(newAuthTokenMessage.AuthenticationToken, Is.EqualTo(someNewAuthToken)); }
public async Task <HttpResponseMessage> Login(CredentialsMessage credentialsMessage) { var user = await applicationUserManager.FindAsync(credentialsMessage.UserName, credentialsMessage.Password); if (user == null) { return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Invalid credentials provided.")); } NewAuthTokenMessage newAuthTokenMessage = new NewAuthTokenMessage { AuthenticationToken = authTokenGenerator.GenerateAuthToken(user.Id) }; return(Request.CreateResponse(HttpStatusCode.OK, newAuthTokenMessage)); }