public void ShouldOnlyPlanMorningSessionFor3hrs()
        {
            //Arrange
            var talks = new Dictionary <string, int>();

            talks.Add("Writing Fast Tests Against Enterprise Rails", 35);
            talks.Add("Overdoing it in Python", 60);
            talks.Add("Common Ruby Errors", 30);
            talks.Add("Rails for Python Developers", 60);
            var SUT = new SessionPlanner();
            //Act
            var result = SUT.PlanSession(talks, true);

            //Assert
            Assert.AreEqual(3, result.Talks.Count);
            Assert.AreEqual("09:00:00", result.Talks.
                            FirstOrDefault(x => x.Name == "Writing Fast Tests Against Enterprise Rails")
                            .StartTime.ToString("hh:mm:ss"));
            Assert.AreEqual("09:35:00", result.Talks.
                            FirstOrDefault(x => x.Name == "Overdoing it in Python")
                            .StartTime.ToString("hh:mm:ss"));

            Assert.AreEqual("10:35:00", result.Talks.
                            FirstOrDefault(x => x.Name == "Common Ruby Errors")
                            .StartTime.ToString("hh:mm:ss"));
        }
        public void ShouldPlanAfternoonSessionforMax4hrs()
        {
            //Arrange
            var talks = new Dictionary <string, int>();

            talks.Add("Writing Fast Tests Against Enterprise Rails", 25);
            talks.Add("Overdoing it in Python", 60);
            talks.Add("Common Ruby Errors", 30);
            talks.Add("Rails for Python Developers", 60);
            talks.Add("Rails Magic", 5);
            talks.Add("Clojure Ate Scala", 90);
            var SUT = new SessionPlanner();
            //Act
            var result = SUT.PlanSession(talks, false);

            //Assert
            Assert.AreEqual(5, result.Talks.Count);
            Assert.AreEqual("01:00:00 PM", result.Talks.
                            FirstOrDefault(x => x.Name == "Writing Fast Tests Against Enterprise Rails")
                            .StartTime.ToString("hh:mm:ss tt"));
            Assert.AreEqual("01:25:00 PM", result.Talks.
                            FirstOrDefault(x => x.Name == "Overdoing it in Python")
                            .StartTime.ToString("hh:mm:ss tt"));

            Assert.AreEqual("02:25:00 PM", result.Talks.
                            FirstOrDefault(x => x.Name == "Common Ruby Errors")
                            .StartTime.ToString("hh:mm:ss tt"));

            Assert.AreEqual("02:55:00 PM", result.Talks.
                            FirstOrDefault(x => x.Name == "Rails for Python Developers")
                            .StartTime.ToString("hh:mm:ss tt"));

            Assert.AreEqual("03:55:00 PM", result.Talks.
                            FirstOrDefault(x => x.Name == "Rails Magic")
                            .StartTime.ToString("hh:mm:ss tt"));
        }