public void OneBacklogItem_OneComponent_OneProgrammer()
        {
            var team    = Create.Team.WithProgrammer("Homer", "A");
            var backlog = Create.Backlog
                          .WithItem("US1", "A");

            var schedule = new Schedule(backlog, team);

            Assert.That(schedule.AsString(), Looks.LikeSchedule(@"
                |   | Homer |
                | 1 | US1.A |"));
        }
        public void OneBacklogItem_TwoComponents_TwoProgrammers()
        {
            var team = Create.Team
                       .WithProgrammer("Homer", "A")
                       .WithProgrammer("Marge", "B");
            var backlog = Create.Backlog
                          .WithItem("US1", "A", "B");

            var schedule = new Schedule(backlog, team);

            Assert.That(schedule.AsString(), Looks.LikeSchedule(@"
                |   | Homer | Marge |
                | 1 | US1.A | US1.B |"));
        }
        public void TeamRespectingWipLimit_ForUserStory()
        {
            var team = Create.Team
                       .WithRespectWipLimitIgnoreBacklogOrderTeamWorkStrategy(1)
                       .WithProgrammer("Homer", "A")
                       .WithProgrammer("Marge", "A");
            var backlog = Create.Backlog
                          .WithItem("US1", "A", "A");

            var schedule = new Schedule(backlog, team);

            Assert.That(schedule.AsString(), Looks.LikeSchedule(@"
                |   | Homer | Marge |
                | 1 | US1.A | US1.A |"));
        }
        public void TeamRespectingWipLimitAndBacklogOrder()
        {
            var team = Create.Team
                       .WithRespectWipLimitRespectBacklogOrderTeamWorkStrategy(2)
                       .WithProgrammer("Homer", "A")
                       .WithProgrammer("Marge", "B");
            var backlog = Create.Backlog
                          .WithItem("US1", "A")
                          .WithItem("US2", "A")
                          .WithItem("US3", "B");

            var schedule = new Schedule(backlog, team);

            Assert.That(schedule.AsString(), Looks.LikeSchedule(@"
                |   | Homer | Marge |
                | 1 | US1.A | .     |
                | 2 | US2.A | US3.B |"));
        }
        public void Scenario2_TeamWithTShapeProgrammers()
        {
            var team = Create.Team
                       .WithProgrammer("Homer", "A", "B")
                       .WithProgrammer("Marge", "A", "B")
                       .WithProgrammer("Bart", "C");
            var backlog = Create.Backlog
                          .WithItem("US1", "A", "A", "B")
                          .WithItem("US2", "A", "B", "B")
                          .WithItem("US3", "A", "B", "C")
                          .WithItem("US4", "B", "B", "C");

            var schedule = new Schedule(backlog, team);

            Assert.That(schedule.AsString(), Looks.LikeSchedule(@"
                |   | Homer | Marge | Bart  |
                | 1 | US1.A | US1.A | US3.C |
                | 2 | US1.B | US2.A | US4.C |
                | 3 | US2.B | US2.B | .     |
                | 4 | US3.A | US3.B | .     |
                | 5 | US4.B | US4.B | .     |"));
        }