public void AddAttendee_increases_attendee_count() { var meeting = new Meeting(); var returnedAttendee = meeting.AddGuestAttendee("*****@*****.**", "Tim", "Barcz"); Assert.That(meeting.AttendeeCount, Is.EqualTo(1)); Assert.That(meeting.Attendees.First(), Is.EqualTo(returnedAttendee)); }
public void AddAttendee_should_accept_a_guest_registration() { // Arrange var stubMeeting = new Meeting(); const string email = "*****@*****.**"; const string firstname = "FirstName"; const string lastname = "LastName"; // Act var attendee = stubMeeting.AddGuestAttendee(email, firstname, lastname) as GuestAttendee; // Assert Assert.That(attendee, Is.Not.Null); Assert.That(attendee.Meeting, Is.EqualTo(stubMeeting)); Assert.That(attendee.Email, Is.EqualTo(email)); Assert.That(attendee.FirstName, Is.EqualTo(firstname)); Assert.That(attendee.LastName, Is.EqualTo(lastname)); }
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_throw_DuplicateRegistrationException_when_email_is_used_twice() { // Arrange var stubMeeting = new Meeting(); const string email = "*****@*****.**"; const string firstname = "FirstName"; const string lastname = "LastName"; // Act stubMeeting.AddGuestAttendee(email, firstname, lastname); stubMeeting.AddGuestAttendee(email, firstname, lastname); // Assert // no assert here - the assert is the ExpectedException }
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 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)); }