public Projection Get([FromQuery] decimal initialInvestment, [FromQuery] decimal monthlyInvestment, [FromQuery] decimal targetValue, [FromQuery] int years, [FromQuery] string riskLevel = "low") { var risk = ConvertToRiskLevels(riskLevel); var calculator = RiskFactory.CreateInstance(risk, new InputValidator()); return(calculator.CalculateGrowth(initialInvestment, monthlyInvestment, targetValue, years)); }
public void GivenIWantToCalculate(string riskType) { const string expectedLow = "low"; const string expectedMedium = "medium"; const string expectedHigh = "high"; var level = (riskType.ToLower()) switch { expectedLow => RiskLevels.Low, expectedMedium => RiskLevels.Medium, expectedHigh => RiskLevels.High, _ => throw new ArgumentOutOfRangeException(), }; _growthRisk = RiskFactory.CreateInstance(level, new InputValidator()); }
public void CreateInstanceCreatesInstanceOfHighRiskWhenHighIsProvided() { var highRisk = RiskFactory.CreateInstance(Models.RiskLevels.High, new FakeValidator()); Assert.IsInstanceOf <HighRisk>(highRisk); }
public void CreateInstanceCreatesInstanceOfLowRiskWhenLowIsProvided() { var lowRisk = RiskFactory.CreateInstance(Models.RiskLevels.Low, new FakeValidator()); Assert.IsInstanceOf <LowRisk>(lowRisk); }
public void CreateInstanceCreatesInstanceOfMediumRiskWhenMediumIsProvided() { var mediumRisk = RiskFactory.CreateInstance(Models.RiskLevels.Medium, new FakeValidator()); Assert.IsInstanceOf <MediumRisk>(mediumRisk); }