예제 #1
0
        public void Write_WithScores_PutsForumulaOnRightPositions()
        {
            // Arrange
            int achievedScoreRow              = 5;
            int scoresStartColumn             = 1;
            var maximumScorePosition          = new Point(1, 0);
            var standardizationFactorPosition = new Point(1, 1);
            var minimumScorePosition          = new Point(1, 2);
            int numberOfStudents              = 1;
            var expectedFormula = _fixture.Create <string>();

            SetupFormulaBuilderFactory(_formulaBuilderFactory, expectedFormula);

            var sut = new GradesBlock(
                _startpoint,
                _formulaBuilderFactory.Object,
                achievedScoreRow,
                scoresStartColumn,
                maximumScorePosition,
                standardizationFactorPosition,
                minimumScorePosition,
                numberOfStudents);

            // Act
            sut.Write(_spreadsheetWriter);

            // Assert
            _spreadsheet[1, 5].Should().Be(expectedFormula);
            _spreadsheet[2, 5].Should().Be(expectedFormula);
        }
        private static void AddGradesRow(ISpreadsheetWriter spreadsheetWriter,
                                         int achievedScoresRow,
                                         int scoresStartColumn,
                                         Point maximumPointsPosition,
                                         Point minimumGradePosition,
                                         Point standardizationfactorPosition,
                                         int numberOfStudents,
                                         IFormulaBuilderFactory formulaBuilderFactory)
        {
            var totalPointsBlock = new GradesBlock(
                spreadsheetWriter.CurrentPosition,
                formulaBuilderFactory,
                achievedScoresRow,
                scoresStartColumn,
                maximumPointsPosition,
                standardizationfactorPosition,
                minimumGradePosition,
                numberOfStudents);

            totalPointsBlock.Write(spreadsheetWriter);
        }