public void Create_ConferenceWithTrack_ReturnsConference() { // Arrange var conferenceId = Guid.NewGuid(); var trackId = Guid.NewGuid(); var createConferenceIdResult = ConferenceId.Create(conferenceId); var createTrackIdResult = TrackId.Create(trackId); var createConferenceResult = Conference.Create(createConferenceIdResult.Data); var conference = createConferenceResult.Data; // Act var addTrackResult = conference.AddTrack(createTrackIdResult.Data); // Assert Assert.IsNotNull(addTrackResult.Data); var trackCreated = conference.Events.OfType <TrackCreated>().FirstOrDefault(); Assert.IsNotNull(trackCreated); Assert.AreEqual(createTrackIdResult.Data, trackCreated.TrackId); var trackAddedToConference = conference.Events.OfType <TrackAddedToConference>().FirstOrDefault(); Assert.IsNotNull(trackAddedToConference); Assert.AreEqual(createTrackIdResult.Data, trackAddedToConference.TrackId); Assert.AreEqual(conference.ConferenceId, trackAddedToConference.ConferenceId); Assert.AreEqual(1, conference.GetTracks().Count); }
public void Create_ConferenceWithTalkInAfternoon_ReturnsConference() { // Arrange var conferenceId = Guid.NewGuid(); var trackId = Guid.NewGuid(); var talkIdAfternoon = Guid.NewGuid(); var conferenceIdObj = ConferenceId.Create(conferenceId).Data; var conference = Conference.Create(conferenceIdObj).Data; var trackIdObj = TrackId.Create(trackId).Data; conference.AddTrack(trackIdObj); AddTalkToTrack(conference, trackIdObj, Guid.NewGuid(), "Morning - 1", "1st Morning Session 60 mins", 60); AddTalkToTrack(conference, trackIdObj, Guid.NewGuid(), "Morning - 2", "2nd Morning Session 60 mins", 60); AddTalkToTrack(conference, trackIdObj, Guid.NewGuid(), "Morning - 3", "3rd Morning Session 60 mins", 60); var talkIdObjAfternoon = TalkId.Create(talkIdAfternoon).Data; var titleAfternoon = Title.Create("Afternoon talk").Data; var descriptionAfternoon = Description.Create("This is the Afternoon talk").Data; var durationAfternoon = Duration.Create(TimeSpan.FromMinutes(45)).Data; // 45 mins var startTimeAfternoon = TalkStartTime.Create(DateTime.Today.AddHours(13)).Data; // 1PM // Act var afternoonTalkAddedToTrackEventResult = conference.AddTalkToTrack(trackIdObj, talkIdObjAfternoon, titleAfternoon, descriptionAfternoon, durationAfternoon); // Assert Assert.IsTrue(afternoonTalkAddedToTrackEventResult.IsSuccess); var talkAddedToTrackEvent = conference.Events.OfType <TalkAddedToTrack>().LastOrDefault(); Assert.IsNotNull(talkAddedToTrackEvent); Assert.AreEqual(trackIdObj, talkAddedToTrackEvent.TrackId); Assert.AreEqual(talkIdObjAfternoon, talkAddedToTrackEvent.TalkId); Assert.AreEqual(startTimeAfternoon, talkAddedToTrackEvent.StartTime); }
public void Create_ConferenceWithTalkInMorning_ReturnsConference() { // Arrange var conferenceId = Guid.NewGuid(); var trackId = Guid.NewGuid(); var talkId = Guid.NewGuid(); var conferenceIdObj = ConferenceId.Create(conferenceId).Data; var trackIdObj = TrackId.Create(trackId).Data; var talkIdObj = TalkId.Create(talkId).Data; var title = Title.Create("First talk").Data; var description = Description.Create("This is the first talk").Data; var duration = Duration.Create(TimeSpan.FromMinutes(30)).Data; // 30 minutes var morningSessionDateTime = TalkStartTime.Create(DateTime.Today.AddHours(9)).Data; // 9AM var conference = Conference.Create(conferenceIdObj).Data; conference.AddTrack(trackIdObj); // Act var addTalkToTrackResult = conference.AddTalkToTrack(trackIdObj, talkIdObj, title, description, duration); // Assert Assert.IsTrue(addTalkToTrackResult.IsSuccess); var talkAddedToTrackEvent = conference.Events.OfType <TalkAddedToTrack>().FirstOrDefault(); Assert.IsNotNull(talkAddedToTrackEvent); Assert.AreEqual(trackIdObj, talkAddedToTrackEvent.TrackId); Assert.AreEqual(talkIdObj, talkAddedToTrackEvent.TalkId); Assert.AreEqual(morningSessionDateTime, talkAddedToTrackEvent.StartTime); Assert.IsNull(addTalkToTrackResult.Error); }
public void Create_EmptyConferenceWithId_ReturnsConference() { // Arrange var id = Guid.NewGuid(); var createConferenceIdResult = ConferenceId.Create(id); // Act var createConferenceResult = Conference.Create(createConferenceIdResult.Data); // Assert var conference = createConferenceResult.Data; Assert.AreEqual(createConferenceIdResult.Data, conference.ConferenceId); Assert.AreEqual(0, conference.GetTracks().Count); var firstEvent = conference.Events.OfType <ConferenceCreated>().FirstOrDefault(); Assert.AreEqual(typeof(ConferenceCreated), firstEvent.GetType()); Assert.AreEqual(conference.ConferenceId, firstEvent.Id); }