public void GolfClubCreatedEvent_CanBeCreated_IsCreated()
        {
            GolfClubCreatedEvent golfClubCreatedEvent = GolfClubCreatedEvent.Create(GolfClubTestData.AggregateId,
                                                                                    GolfClubTestData.Name,
                                                                                    GolfClubTestData.AddressLine1,
                                                                                    GolfClubTestData.AddressLine2,
                                                                                    GolfClubTestData.Town,
                                                                                    GolfClubTestData.Region,
                                                                                    GolfClubTestData.PostalCode,
                                                                                    GolfClubTestData.TelephoneNumber,
                                                                                    GolfClubTestData.Website,
                                                                                    GolfClubTestData.EmailAddress);

            golfClubCreatedEvent.ShouldNotBeNull();
            golfClubCreatedEvent.AggregateId.ShouldBe(GolfClubTestData.AggregateId);
            golfClubCreatedEvent.Name.ShouldBe(GolfClubTestData.Name);
            golfClubCreatedEvent.AddressLine1.ShouldBe(GolfClubTestData.AddressLine1);
            golfClubCreatedEvent.AddressLine2.ShouldBe(GolfClubTestData.AddressLine2);
            golfClubCreatedEvent.Town.ShouldBe(GolfClubTestData.Town);
            golfClubCreatedEvent.Region.ShouldBe(GolfClubTestData.Region);
            golfClubCreatedEvent.PostalCode.ShouldBe(GolfClubTestData.PostalCode);
            golfClubCreatedEvent.TelephoneNumber.ShouldBe(GolfClubTestData.TelephoneNumber);
            golfClubCreatedEvent.Website.ShouldBe(GolfClubTestData.Website);
            golfClubCreatedEvent.EmailAddress.ShouldBe(GolfClubTestData.EmailAddress);
            golfClubCreatedEvent.EventCreatedDateTime.ShouldNotBe(DateTime.MinValue);
            golfClubCreatedEvent.EventId.ShouldNotBe(Guid.Empty);
        }
Exemple #2
0
        /// <summary>
        /// Creates the golf club.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="addressLine1">The address line1.</param>
        /// <param name="addressLine2">The address line2.</param>
        /// <param name="town">The town.</param>
        /// <param name="region">The region.</param>
        /// <param name="postalCode">The postal code.</param>
        /// <param name="telephoneNumber">The telephone number.</param>
        /// <param name="website">The website.</param>
        /// <param name="emailAddress">The email address.</param>
        public void CreateGolfClub(String name,
                                   String addressLine1,
                                   String addressLine2,
                                   String town,
                                   String region,
                                   String postalCode,
                                   String telephoneNumber,
                                   String website,
                                   String emailAddress)
        {
            // Now apply the business rules
            Guard.ThrowIfNullOrEmpty(name, typeof(ArgumentNullException), "A club must have a name to be created");
            Guard.ThrowIfNullOrEmpty(addressLine1, typeof(ArgumentNullException), "A club must have an Address line 1 to be created");
            Guard.ThrowIfNullOrEmpty(town, typeof(ArgumentNullException), "A club must have a town to be created");
            Guard.ThrowIfNullOrEmpty(region, typeof(ArgumentNullException), "A club must have a region to be created");
            Guard.ThrowIfNullOrEmpty(postalCode, typeof(ArgumentNullException), "A club must have a postal code to be created");
            Guard.ThrowIfNullOrEmpty(telephoneNumber, typeof(ArgumentNullException), "A club must have a telephone number to be created");

            this.CheckGolfClubHasNotAlreadyBeenCreated();

            // Now create the domain event
            GolfClubCreatedEvent golfClubCreatedEvent =
                GolfClubCreatedEvent.Create(this.AggregateId, name, addressLine1, addressLine2, town, region, postalCode, telephoneNumber, website, emailAddress);

            // Apply and Pend the event
            this.ApplyAndPend(golfClubCreatedEvent);
        }