예제 #1
0
        public void IncludeConferenceWithOnlyMorningSessionTrackSuccessfully()
        {
            var stringTalkList = new List <string>();

            stringTalkList.Add("Clojure Ate Scala(on my project) 45min");
            stringTalkList.Add("Programming in the Boondocks of Seattle 30min");
            stringTalkList.Add("Ruby vs.Clojure for Back - End Development 30min");
            stringTalkList.Add("User Interface CSS in Rails Apps 30min");
            var talkService = new TalkService();
            var talks       = new List <Talk>();

            foreach (var item in stringTalkList)
            {
                talks.Add(talkService.IncludeTalk(item));
            }
            var service    = new ConferenceService();
            var conference = service.ScheduleTalks(talks);

            Assert.IsTrue(conference != null &&
                          conference.Tracks.Count == 1 &&
                          conference.Tracks[0].HasNetworking == false &&
                          conference.Tracks[0].MorningTalks.Count > 0 &&
                          conference.Tracks[0].AfternoonTalks.Count == 0 &&
                          string.IsNullOrWhiteSpace(service.Error));
        }
예제 #2
0
        public void IncludeConferenceWithOneTrackSuccessfully()
        {
            var stringTalkList = new List <string>();

            stringTalkList.Add("Rails Magic 60min");
            stringTalkList.Add("Ruby on Rails: Why We Should Move On 60min");
            stringTalkList.Add("Clojure Ate Scala(on my project) 45min");
            stringTalkList.Add("Programming in the Boondocks of Seattle 30min");
            stringTalkList.Add("Ruby vs.Clojure for Back - End Development 30min");
            stringTalkList.Add("Ruby on Rails Legacy App Maintenance 60min");
            stringTalkList.Add("A World Without HackerNews 30min");
            stringTalkList.Add("User Interface CSS in Rails Apps 30min");
            var talkService = new TalkService();
            var talks       = new List <Talk>();

            foreach (var item in stringTalkList)
            {
                talks.Add(talkService.IncludeTalk(item));
            }
            var service    = new ConferenceService();
            var conference = service.ScheduleTalks(talks);

            Assert.IsTrue(conference != null &&
                          conference.Tracks.Count == 1 &&
                          string.IsNullOrWhiteSpace(service.Error));
        }
예제 #3
0
        public void VisualizeScheduleSuccessfully()
        {
            var service    = new ConferenceService();
            var conference = service.ScheduleTalks(DefaultTalks);
            var schedule   = service.VisualizeSchedule(conference);

            Assert.IsTrue(!string.IsNullOrWhiteSpace(schedule.ToString()) && string.IsNullOrWhiteSpace(service.Error));
        }
예제 #4
0
        public void DontIncludeConferenceWithoutTalks()
        {
            var service        = new ConferenceService();
            var talksCountZero = new List <Talk>();
            var conference     = service.ScheduleTalks(talksCountZero);

            Assert.IsTrue(conference == null && !string.IsNullOrWhiteSpace(service.Error));
        }
예제 #5
0
        public void IncludeConferenceWithTwoTracksSuccessfully()
        {
            var service    = new ConferenceService();
            var conference = service.ScheduleTalks(DefaultTalks);

            Assert.IsTrue(conference != null &&
                          conference.Tracks.Count == 2 &&
                          string.IsNullOrWhiteSpace(service.Error));
        }
예제 #6
0
        public void VisualizeScheduleOfConferenceWithOnlyMorningSessionTrackSuccessfully()
        {
            var stringTalkList = new List <string>();

            stringTalkList.Add("Clojure Ate Scala(on my project) 45min");
            stringTalkList.Add("Programming in the Boondocks of Seattle 30min");
            stringTalkList.Add("Ruby vs.Clojure for Back - End Development 30min");
            stringTalkList.Add("User Interface CSS in Rails Apps 30min");
            var talkService = new TalkService();
            var talks       = new List <Talk>();

            foreach (var item in stringTalkList)
            {
                talks.Add(talkService.IncludeTalk(item));
            }
            var service    = new ConferenceService();
            var conference = service.ScheduleTalks(talks);
            var schedule   = service.VisualizeSchedule(conference);

            Assert.IsTrue(!string.IsNullOrWhiteSpace(schedule.ToString()) &&
                          string.IsNullOrWhiteSpace(service.Error));
        }
예제 #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("Inform a talk list:\n\n");
            string line;
            var    talks             = new List <Talk>();
            var    conferenceService = new ConferenceService();
            var    talkService       = new TalkService();

            while ((line = Console.ReadLine()).Any())
            {
                var talk = talkService.IncludeTalk(line);
                if (talk == null)
                {
                    Console.WriteLine(talkService.Error);
                    continue;
                }
                talks.Add(talk);
            }
            var conference = conferenceService.ScheduleTalks(talks);

            if (conference == null)
            {
                Console.WriteLine(conferenceService.Error);
                return;
            }
            var schedule = conferenceService.VisualizeSchedule(conference);

            if (schedule == null)
            {
                Console.WriteLine(conferenceService.Error);
            }
            else
            {
                Console.WriteLine(schedule.ToString());
            }
        }