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); }
private static Result <TalkId> AddTalkToTrack(Conference conference, TrackId trackIdObj, Guid talkId, string title, string description, int durationInMinutes) { var talkIdObj = TalkId.Create(talkId).Data; var titleObj = Title.Create(title).Data; var descriptionObj = Description.Create(description).Data; var durationObj = Duration.Create(TimeSpan.FromMinutes(durationInMinutes)).Data; return(conference.AddTalkToTrack(trackIdObj, talkIdObj, titleObj, descriptionObj, durationObj)); }