public void PlayerAggregate_CreateSecurityUser_SecurityUserCreated()
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetRegisteredPlayerAggregate();

            playerAggregate.CreateSecurityUser(PlayerTestData.SecurityUserId);

            playerAggregate.SecurityUserId.ShouldBe(PlayerTestData.SecurityUserId);
            playerAggregate.HasSecurityUserBeenCreated.ShouldBeTrue();
        }
Esempio n. 2
0
        public static PlayerAggregate GetRegisteredPlayerAggregateWithSecurityUserCreated()
        {
            PlayerAggregate playerAggregate = PlayerAggregate.Create(PlayerTestData.AggregateId);

            playerAggregate.Register(PlayerTestData.FirstName,
                                     PlayerTestData.MiddleName,
                                     PlayerTestData.LastName,
                                     PlayerTestData.Gender,
                                     PlayerTestData.DateOfBirth,
                                     PlayerTestData.ExactHandicapCat1,
                                     PlayerTestData.EmailAddress);

            playerAggregate.CreateSecurityUser(PlayerTestData.SecurityUserId);

            return(playerAggregate);
        }
Esempio n. 3
0
        /// <summary>
        /// Handles the command.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        private async Task HandleCommand(RegisterPlayerCommand command, CancellationToken cancellationToken)
        {
            // Rehydrate the aggregate
            PlayerAggregate player = await this.PlayerRepository.GetLatestVersion(command.PlayerId, cancellationToken);

            // Call the aggregate method
            player.Register(command.RegisterPlayerRequest.GivenName,
                            command.RegisterPlayerRequest.MiddleName,
                            command.RegisterPlayerRequest.FamilyName,
                            command.RegisterPlayerRequest.Gender,
                            command.RegisterPlayerRequest.DateOfBirth,
                            command.RegisterPlayerRequest.ExactHandicap,
                            command.RegisterPlayerRequest.EmailAddress);

            // Now create a security user
            RegisterUserRequest request = new RegisterUserRequest
            {
                EmailAddress = command.RegisterPlayerRequest.EmailAddress,
                Claims       = new Dictionary <String, String>
                {
                    { "PlayerId", command.PlayerId.ToString() }
                },
                Password    = "******",
                PhoneNumber = "123456789",
                MiddleName  = command.RegisterPlayerRequest.MiddleName,
                FamilyName  = command.RegisterPlayerRequest.FamilyName,
                GivenName   = command.RegisterPlayerRequest.GivenName,
                Roles       = new List <String>
                {
                    "Player"
                }
            };
            RegisterUserResponse createSecurityUserResponse = await this.OAuth2SecurityService.RegisterUser(request, cancellationToken);

            // Record this in the aggregate
            player.CreateSecurityUser(createSecurityUserResponse.UserId);

            // Save the changes
            await this.PlayerRepository.SaveChanges(player, cancellationToken);

            // Setup the response
            command.Response = new RegisterPlayerResponse {
                PlayerId = command.PlayerId
            };
        }
        public void PlayerAggregate_CreateSecurityUser_SecurityUserAlreadyAdded_ErrorThrown()
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetRegisteredPlayerAggregateWithSecurityUserCreated();

            Should.Throw <InvalidOperationException>(() => { playerAggregate.CreateSecurityUser(PlayerTestData.SecurityUserId); });
        }
        public void PlayerAggregate_CreateSecurityUser_PlayerNotRegistered_ErrorThrown()
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetEmptyPlayerAggregate();

            Should.Throw <InvalidOperationException>(() => { playerAggregate.CreateSecurityUser(PlayerTestData.SecurityUserId); });
        }
        public void PlayerAggregate_CreateSecurityUser_InvalidData_ErrorThrown()
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetRegisteredPlayerAggregate();

            Should.Throw <ArgumentNullException>(() => { playerAggregate.CreateSecurityUser(Guid.Empty); });
        }