示例#1
0
        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));
        }
示例#2
0
        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));
        }