public void PlayerAggregate_Register_NoMiddleName_PlayerRegistered(String middleName)
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetEmptyPlayerAggregate();

            Decimal exactHandicap    = PlayerTestData.ExactHandicapCat1;
            Int32   playingHandicap  = PlayerTestData.PlayingHandicapCat1;
            Int32   handicapCategory = PlayerTestData.HandicapCategoryCat1;


            playerAggregate.Register(PlayerTestData.FirstName,
                                     middleName,
                                     PlayerTestData.LastName,
                                     PlayerTestData.Gender,
                                     PlayerTestData.DateOfBirth,
                                     exactHandicap,
                                     PlayerTestData.EmailAddress);

            playerAggregate.FirstName.ShouldBe(PlayerTestData.FirstName);
            playerAggregate.MiddleName.ShouldBe(middleName);
            playerAggregate.LastName.ShouldBe(PlayerTestData.LastName);
            playerAggregate.Gender.ShouldBe(PlayerTestData.Gender);
            playerAggregate.DateOfBirth.ShouldBe(PlayerTestData.DateOfBirth);
            playerAggregate.ExactHandicap.ShouldBe(exactHandicap);
            playerAggregate.EmailAddress.ShouldBe(PlayerTestData.EmailAddress);
            playerAggregate.PlayingHandicap.ShouldBe(playingHandicap);
            playerAggregate.HandicapCategory.ShouldBe(handicapCategory);
            playerAggregate.FullName.ShouldBe(PlayerTestData.FullNameEmptyMiddleName);
        }
        public void PlayerAggregate_Register_PlayerRegistered(Int32 category)
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetEmptyPlayerAggregate();

            Decimal exactHandicap    = 0;
            Int32   playingHandicap  = 0;
            Int32   handicapCategory = 0;

            switch (category)
            {
            case 1:
                exactHandicap    = PlayerTestData.ExactHandicapCat1;
                playingHandicap  = PlayerTestData.PlayingHandicapCat1;
                handicapCategory = PlayerTestData.HandicapCategoryCat1;
                break;

            case 2:
                exactHandicap    = PlayerTestData.ExactHandicapCat2;
                playingHandicap  = PlayerTestData.PlayingHandicapCat2;
                handicapCategory = PlayerTestData.HandicapCategoryCat2;
                break;

            case 3:
                exactHandicap    = PlayerTestData.ExactHandicapCat3;
                playingHandicap  = PlayerTestData.PlayingHandicapCat3;
                handicapCategory = PlayerTestData.HandicapCategoryCat3;
                break;

            case 4:
                exactHandicap    = PlayerTestData.ExactHandicapCat4;
                playingHandicap  = PlayerTestData.PlayingHandicapCat4;
                handicapCategory = PlayerTestData.HandicapCategoryCat4;
                break;

            case 5:
                exactHandicap    = PlayerTestData.ExactHandicapCat5;
                playingHandicap  = PlayerTestData.PlayingHandicapCat5;
                handicapCategory = PlayerTestData.HandicapCategoryCat5;
                break;
            }

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

            playerAggregate.FirstName.ShouldBe(PlayerTestData.FirstName);
            playerAggregate.MiddleName.ShouldBe(PlayerTestData.MiddleName);
            playerAggregate.LastName.ShouldBe(PlayerTestData.LastName);
            playerAggregate.Gender.ShouldBe(PlayerTestData.Gender);
            playerAggregate.DateOfBirth.ShouldBe(PlayerTestData.DateOfBirth);
            playerAggregate.ExactHandicap.ShouldBe(exactHandicap);
            playerAggregate.EmailAddress.ShouldBe(PlayerTestData.EmailAddress);
            playerAggregate.PlayingHandicap.ShouldBe(playingHandicap);
            playerAggregate.HandicapCategory.ShouldBe(handicapCategory);
            playerAggregate.FullName.ShouldBe(PlayerTestData.FullName);
        }
Beispiel #3
0
        public static PlayerAggregate GetRegisteredPlayerAggregate()
        {
            PlayerAggregate playerAggregate = PlayerAggregate.Create(PlayerTestData.AggregateId);

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

            return(playerAggregate);
        }
        public void PlayerAggregate_Register_PlayerAlreadyRegistered_ErrorThrown()
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetRegisteredPlayerAggregate();

            Should.Throw <InvalidOperationException>(() =>
            {
                playerAggregate.Register(PlayerTestData.FirstName,
                                         PlayerTestData.MiddleName,
                                         PlayerTestData.LastName,
                                         PlayerTestData.Gender,
                                         PlayerTestData.DateOfBirth,
                                         PlayerTestData.ExactHandicapCat1,
                                         PlayerTestData.EmailAddress);
            });
        }
        public void PlayerAggregate_Register_InvalidData(String firstName,
                                                         String lastName,
                                                         String gender,
                                                         Boolean dateOfBirthInFuture,
                                                         Decimal exactHandicap,
                                                         String emailAddress,
                                                         Type exceptionType)
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetEmptyPlayerAggregate();

            DateTime dateOfBirth = dateOfBirthInFuture ? DateTime.Now.AddYears(5) : PlayerTestData.DateOfBirth;

            Should.Throw(() => { playerAggregate.Register(firstName, PlayerTestData.MiddleName, lastName, gender, dateOfBirth, exactHandicap, emailAddress); },
                         exceptionType);
        }
        public void PlayerAggregate_Register_PlayerRegistered_HandicapEdgeCase_HighEnd(Int32 category, Decimal highendValue)
        {
            PlayerAggregate playerAggregate = PlayerTestData.GetEmptyPlayerAggregate();

            Decimal exactHandicap    = 0;
            Int32   handicapCategory = 0;

            switch (category)
            {
            case 1:
                exactHandicap    = highendValue;
                handicapCategory = PlayerTestData.HandicapCategoryCat1;
                break;

            case 2:
                exactHandicap    = highendValue;
                handicapCategory = PlayerTestData.HandicapCategoryCat2;
                break;

            case 3:
                exactHandicap    = highendValue;
                handicapCategory = PlayerTestData.HandicapCategoryCat3;
                break;

            case 4:
                exactHandicap    = highendValue;
                handicapCategory = PlayerTestData.HandicapCategoryCat4;
                break;

            case 5:
                exactHandicap    = highendValue;
                handicapCategory = PlayerTestData.HandicapCategoryCat5;
                break;
            }

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

            playerAggregate.HandicapCategory.ShouldBe(handicapCategory);
        }
Beispiel #7
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
            };
        }
Beispiel #8
0
        public static PlayerAggregate GetRegisteredPlayerAggregateWithHandicapAdjustment()
        {
            PlayerAggregate playerAggregate = PlayerAggregate.Create(PlayerTestData.AggregateId);

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

            playerAggregate.AdjustHandicap(PlayerTestData.HandicapAdjustment,
                                           PlayerTestData.TournamentId,
                                           PlayerTestData.GolfClubId,
                                           PlayerTestData.MeasuredCourseId,
                                           PlayerTestData.ScoreDate);

            return(playerAggregate);
        }