示例#1
0
        private static void RunOldImplementation()
        {
            Console.WriteLine("Running old implementation.");

            var settingsRepo = new SettingsRepo();

            var age             = 36;
            var weight          = 70;
            var height          = 170;
            var avgHealthPoints = 7.4;

            var oldHandler           = new OldDsfHandler(settingsRepo);
            var resultFromOldHandler = oldHandler.GetDecisionSupportFactor(age, weight, height, avgHealthPoints);

            Console.WriteLine($"Decision support factor: {resultFromOldHandler}");
        }
示例#2
0
        public void RefactoredCodeProducesSameResultAsOriginalCode(int age, int weight, int height, double avgHealthPoints)
        {
            // Arrange
            var oldDsfHandler = new OldDsfHandler(new SettingsRepo());

            var actualRequest = new DsfRequest(age, weight, height, avgHealthPoints, "", "", "", "");

            var handler = new CheckBmiRule();

            handler.SetNext(new CheckAgeRule())
            .SetNext(new CheckAvgHealthPointsRule())
            .SetNext(new CalculateDsfFactorRule())
            .SetNext(new CheckAgainstMaxDsfFactorRule())
            .SetNext(new CheckAgainstMinDsfFactorRule());

            // Act
            var expectedDsfValue = oldDsfHandler.GetDecisionSupportFactor(age, weight, height, avgHealthPoints);

            handler.Handle(actualRequest);

            // Assert
            Assert.Equal(expectedDsfValue, actualRequest.DsfFactor);
        }