Example #1
0
        public void AddAttendee_should_add_the_meeting_to_the_list_of_attended_meetings_for_the_member()
        {
            // Arrange
            var meeting = new Meeting();
            var member = new Member();

            // Act
            meeting.AddAttendee(member);

            // Assert
            Assert.That(member.AttendedMeetings.Contains(meeting));
            Assert.That(member.AttendedMeetings[0].Attendees.OfType<MemberAttendee>().Any(attendee=>attendee.Member == member));
        }
Example #2
0
        public void AddAttendee_should_accept_a_user_to_be_added()
        {
            // Arrange
            var meeting = new Meeting();
            var member = new Member();

            // Act
            var attendee = meeting.AddAttendee(member) as MemberAttendee;

            // Assert
            Assert.That(attendee, Is.Not.Null);
            Assert.That(attendee.Meeting, Is.EqualTo(meeting));
            Assert.That(attendee.Member, Is.EqualTo(member));
        }
Example #3
0
        public void AddAttendee_should_not_allow_a_guest_to_register_when_user_with_that_email_has_already_registered()
        {
            // Arrange
            var stubMeeting = new Meeting();
            const string email = "*****@*****.**";
            const string firstname = "FirstName";
            const string lastname = "LastName";
            var stubMember = new Member() {Email = email};

            // Act
            stubMeeting.AddAttendee(stubMember); // first, add the member
            stubMeeting.AddGuestAttendee(email, firstname, lastname); // second, add the guest with the same email

            // Assert
            // no assert here - the assert is the ExpectedException
        }
Example #4
0
        public void AddAttendee_should_have_the_original_dateRegistered_when_promoted()
        {
            // Arrange
            var stubMeeting = new Meeting();
            const string email = "*****@*****.**";
            const string firstname = "FirstName";
            const string lastname = "LastName";
            var stubMember = new Member() { Email = email };

            // Act
            var firstAttendee = stubMeeting.AddGuestAttendee(email, firstname, lastname); // first, add the guest
            var secondAttendee = stubMeeting.AddAttendee(stubMember) as PromotedAttendee; // second, add the member with the same email

            // Assert
            Assert.That(secondAttendee.DateRegistered, Is.EqualTo(firstAttendee.DateRegistered));
        }
Example #5
0
        public void AddAttendee_should_return_an_attendee_with_a_DateRegistered_close_to_current_time()
        {
            // Arrange
            var meeting = new Meeting();
            var member = new Member();
            var currentDate = DateTime.Now;

            // Act
            var attendee = meeting.AddAttendee(member);

            // Assert
            Assert.That(attendee.DateRegistered, Is.GreaterThanOrEqualTo(currentDate));
        }
Example #6
0
        public void AddAttendee_should_promote_a_guest_registration_to_a_user_regisration_when_the_user_email_matches_a_guest_email()
        {
            // Arrange
            var stubMeeting = new Meeting();
            const string email = "*****@*****.**";
            const string firstname = "FirstName";
            const string lastname = "LastName";
            var stubMember = new Member() { Email = email };

            // Act
            var firstAttendee = stubMeeting.AddGuestAttendee(email, firstname, lastname); // first, add the guest
            var secondAttendee = stubMeeting.AddAttendee(stubMember); // second, add the member with the same email

            // Assert
            Assert.That(stubMeeting.AttendeeCount, Is.EqualTo(1));
            Assert.That(secondAttendee, Is.TypeOf(typeof(PromotedAttendee)));
        }
Example #7
0
        public void AddAttendee_should_not_allow_a_user_to_be_added_twice()
        {
            // Arrange
            var meeting = new Meeting();
            var member = new Member();

            // Act
            meeting.AddAttendee(member);
            meeting.AddAttendee(member);

            // Assert
            // no assert here - the assert is the ExpectedException
        }
Example #8
0
        public void Update_on_Meeting_with_no_Attendee_change_should_keep_same_Attendees()
        {
            var repository = GetMeetingRepository();

            var meeting = new Meeting();

            meeting.AddAttendee(new Member{Email = "*****@*****.**"});
            meeting.AddGuestAttendee("email", "first", "last");

            var id = repository.Add(meeting);

            Assert.That(meeting.AttendeeCount, Is.EqualTo(2));

            repository.Update(meeting);

            var savedMeeting = repository.GetById(id);
            savedMeeting.EndTime = DateTime.Now.AddHours(2);
            savedMeeting.Description = savedMeeting.Description += " NOTE: Updated times!";

            repository.Update(meeting);

            Assert.That(savedMeeting.AttendeeCount, Is.EqualTo(2));
            Assert.That(DateTime.Now.AddHours(2), Is.LessThanOrEqualTo(savedMeeting.EndTime));
        }
Example #9
0
        public void Update_on_Meeting_should_not_overwrite_attendees()
        {
            var repository = GetMeetingRepository();

            var meeting = new Meeting {Description = "next meeting", Title = "Title"};

            meeting.AddSponsor(new Sponsor {Description = "sweet", Name = "J&P Cycles"});
            meeting.AddAttendee(new Member{Email = "*****@*****.**"});

            var meetingId = repository.Add(meeting);

            var savedMeeting = repository.GetById(meetingId);

            meeting.AddGuestAttendee("*****@*****.**", "chris", "missal");

            repository.Update(meeting);

            var countBeforeUpdate = meeting.AttendeeCount;

            repository.Update(savedMeeting);

            Assert.That(savedMeeting.AttendeeCount, Is.EqualTo(countBeforeUpdate));
        }