public void AssessTasksHandler_ShouldReturnResult_IfTotalPointsCanBeDividedByThree()
        {
            var tasks = new Tuple <string, int>[]
            {
                Tuple.Create("A", 1),
                Tuple.Create("B", 1),
                Tuple.Create("C", 2),
                Tuple.Create("D", 2)
            };
            var expectedResult = new Tuple <string, int> [3][] {
                new Tuple <string, int>[] {
                    Tuple.Create("C", 2)
                },
                new Tuple <string, int>[] {
                    Tuple.Create("D", 2)
                },
                new Tuple <string, int>[] {
                    Tuple.Create("A", 1),
                    Tuple.Create("B", 1)
                }
            };

            var handler = new AssessTasks();
            var result  = handler.AssessTasksHandler(tasks);

            Assert.Equal(expectedResult, result);
        }
        public void AssessTasksHandler_ShouldReturnEmptyArray_IfHasThreeDifferentPointTasks()
        {
            var tasks = new Tuple <string, int>[]
            {
                Tuple.Create("A", 1),
                Tuple.Create("B", 1),
                Tuple.Create("C", 2)
            };

            var handler = new AssessTasks();
            var result  = handler.AssessTasksHandler(tasks);

            Assert.Equal(3, result.Length);
            Assert.Null(result[0]);
        }
        public void AssessTasksHandler_ShouldReturnEmptyArray_IfTotalPointsCannotBeDividedByThree()
        {
            var tasks = new Tuple <string, int>[]
            {
                Tuple.Create("A", 2),
                Tuple.Create("B", 1),
                Tuple.Create("C", 2),
                Tuple.Create("D", 2)
            };

            var handler = new AssessTasks();
            var result  = handler.AssessTasksHandler(tasks);

            Assert.Equal(3, result.Length);
            Assert.Equal(null, result[0]);
        }
        public void AssessTasksHandler_ShouldReturnEmptyArray_IfTasksFailToBeSplited()
        {
            var tasks = new Tuple <string, int>[]
            {
                Tuple.Create("A", 4),
                Tuple.Create("B", 1),
                Tuple.Create("C", 2),
                Tuple.Create("D", 2)
            };

            var handler = new AssessTasks();
            var result  = handler.AssessTasksHandler(tasks);

            Assert.Equal(3, result.Length);
            Assert.Null(result[0]);
        }
        public void AssessTasksHandler_ShouldReturnResult_IfHasThreeSameTasks()
        {
            var tasks = new Tuple <string, int>[]
            {
                Tuple.Create("A", 1),
                Tuple.Create("B", 1),
                Tuple.Create("C", 1)
            };
            var expectedResult = new Tuple <string, int> [3][]
            {
                new Tuple <string, int>[] { tasks[0] },
                new Tuple <string, int>[] { tasks[1] },
                new Tuple <string, int>[] { tasks[2] }
            };

            var handler = new AssessTasks();
            var result  = handler.AssessTasksHandler(tasks);

            Assert.Equal(expectedResult, result);
        }