public void PlayerAggregate_CreateSecurityUser_SecurityUserCreated() { PlayerAggregate playerAggregate = PlayerTestData.GetRegisteredPlayerAggregate(); playerAggregate.CreateSecurityUser(PlayerTestData.SecurityUserId); playerAggregate.SecurityUserId.ShouldBe(PlayerTestData.SecurityUserId); playerAggregate.HasSecurityUserBeenCreated.ShouldBeTrue(); }
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); }
/// <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); }); }