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));
        }
Exemplo n.º 2
0
        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()));
        }