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)); }
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)); }
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 }
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)); }
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)); }
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))); }
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 }
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)); }
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)); }