public async Task Post_ReturnsANewlyRegisteredUserMessage() { var newUserMessage = new NewUserMessage { UniqueDeviceId = "some unique device id" }; var expectedNewlyRegisteredUserMessage = new NewlyRegisteredUserMessage { UserId = "user id", PlayerId = 2, PlayerName = "player name", GamingGroupId = 3, GamingGroupName = "gaming group name" }; var registerNewUserResult = new RegisterNewUserResult { Result = IdentityResult.Success, NewlyRegisteredUser = new NewlyRegisteredUser { UserId = "user id", PlayerId = 2, PlayerName = "player name", GamingGroupId = 3, GamingGroupName = "gaming group name" } }; _autoMocker.Get <IUserRegisterer>().Expect(mock => mock.RegisterUser(Arg <NewUser> .Is.Anything)).Return(Task.FromResult(registerNewUserResult)); string authenticationTokenString = "some auth token string"; DateTime authTokenExpiration = new DateTime(); var expectedAuthToken = new AuthToken(authenticationTokenString, authTokenExpiration); _autoMocker.Get <IAuthTokenGenerator>().Expect(mock => mock.GenerateAuthToken( expectedNewlyRegisteredUserMessage.UserId, newUserMessage.UniqueDeviceId)).Return(expectedAuthToken); var actualResponse = await _autoMocker.ClassUnderTest.RegisterNewUser(newUserMessage); Assert.That(actualResponse.Content, Is.TypeOf(typeof(ObjectContent <NewlyRegisteredUserMessage>))); var content = actualResponse.Content as ObjectContent <NewlyRegisteredUserMessage>; var actualNewlyRegisteredUserMessage = content.Value as NewlyRegisteredUserMessage; Assert.That(actualNewlyRegisteredUserMessage.UserId, Is.EqualTo(expectedNewlyRegisteredUserMessage.UserId)); Assert.That(actualNewlyRegisteredUserMessage.PlayerId, Is.EqualTo(expectedNewlyRegisteredUserMessage.PlayerId)); Assert.That(actualNewlyRegisteredUserMessage.PlayerName, Is.EqualTo(expectedNewlyRegisteredUserMessage.PlayerName)); Assert.That(actualNewlyRegisteredUserMessage.GamingGroupId, Is.EqualTo(expectedNewlyRegisteredUserMessage.GamingGroupId)); Assert.That(actualNewlyRegisteredUserMessage.GamingGroupName, Is.EqualTo(expectedNewlyRegisteredUserMessage.GamingGroupName)); Assert.That(actualNewlyRegisteredUserMessage.AuthenticationToken, Is.EqualTo(expectedAuthToken.AuthenticationTokenString)); Assert.That(actualNewlyRegisteredUserMessage.AuthenticationTokenExpirationDateTime, Is.EqualTo(expectedAuthToken.AuthenticationTokenExpirationDateTime)); }
public virtual async Task <HttpResponseMessage> RegisterNewUser(NewUserMessage newUserMessage) { NewUser newUser = Mapper.Map <NewUserMessage, NewUser>(newUserMessage); RegisterNewUserResult registerNewUserResult = await this.userRegisterer.RegisterUser(newUser); if (registerNewUserResult.Result.Succeeded) { string authToken = authTokenGenerator.GenerateAuthToken(registerNewUserResult.NewlyRegisteredUser.UserId); NewlyRegisteredUserMessage newlyRegisteredUserMessage = Mapper.Map <NewlyRegisteredUser, NewlyRegisteredUserMessage>(registerNewUserResult.NewlyRegisteredUser); newlyRegisteredUserMessage.AuthenticationToken = authToken; return(Request.CreateResponse(HttpStatusCode.OK, newlyRegisteredUserMessage)); } return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, registerNewUserResult.Result.Errors.First())); }