public void TournamentDivisionAddedEvent_CanBeCreated_IsCreated() { TournamentDivisionAddedEvent tournamentDivisionAddedEvent = TournamentDivisionAddedEvent.Create(GolfClubTestData.AggregateId, GolfClubTestData.Division, GolfClubTestData.StartHandicap, GolfClubTestData.EndHandicap); tournamentDivisionAddedEvent.ShouldNotBeNull(); tournamentDivisionAddedEvent.AggregateId.ShouldBe(GolfClubTestData.AggregateId); tournamentDivisionAddedEvent.EventCreatedDateTime.ShouldNotBe(DateTime.MinValue); tournamentDivisionAddedEvent.EventId.ShouldNotBe(Guid.Empty); tournamentDivisionAddedEvent.Division.ShouldBe(GolfClubTestData.Division); tournamentDivisionAddedEvent.StartHandicap.ShouldBe(GolfClubTestData.StartHandicap); tournamentDivisionAddedEvent.EndHandicap.ShouldBe(GolfClubTestData.EndHandicap); }
/// <summary> /// Adds the tournament division. /// </summary> /// <param name="tournamentDivision">The tournament division.</param> public void AddTournamentDivision(TournamentDivisionDataTransferObject tournamentDivision) { Guard.ThrowIfNull(tournamentDivision, typeof(ArgumentNullException), "Tournament Division cannot be null"); this.CheckHasGolfClubAlreadyBeenCreated(); // Check for duplicate division this.ValidateForDuplicateDivision(tournamentDivision.Division); // check for clashing ranges this.ValidateDivisionRanges(tournamentDivision); this.ValidateTournamentDivision(tournamentDivision); // Raise a domain event TournamentDivisionAddedEvent tournamentDivisionAddedEvent = TournamentDivisionAddedEvent.Create(this.AggregateId, tournamentDivision.Division, tournamentDivision.StartHandicap, tournamentDivision.EndHandicap); // Apply and pend this.ApplyAndPend(tournamentDivisionAddedEvent); }