public Defects Validate(YearlyData yearlyData) { if (yearlyData.DevelopmentYear < yearlyData.OriginYear) { _defects.Errors.Add("The Development Year " + yearlyData.DevelopmentYear + " is less than the Origin Year " + yearlyData.OriginYear); } if (yearlyData.OriginYear < WatsonAndSonsYearFounded) { _defects.Errors.Add("The Origin Year " + yearlyData.OriginYear + " is too old"); } if (yearlyData.DevelopmentYear < WatsonAndSonsYearFounded) { _defects.Errors.Add("The Development Year " + yearlyData.DevelopmentYear + " is too old"); } if (yearlyData.OriginYear > DateTime.Now.Year) { _defects.Warnings.Add("The Origin Year " + yearlyData.OriginYear + " post dates the year that this PC’s system clock is set to (" + DateTime.Now.Year + ")."); } return(_defects); }
public List <YearlyData> LoadCsvFile(string filePath) { var records = new List <YearlyData>(); using var reader = new StreamReader(filePath); using var csv = new CsvReader(reader); csv.Read(); SetCsvHelperConfiguration(csv); try { csv.ReadHeader(); } catch (ReaderException) { return(records); // If the header record is missing we cannot load the file } while (csv.Read()) { var record = new YearlyData { ProductName = csv.GetField <string>("Product"), OriginYear = csv.GetField <int>("Origin Year"), DevelopmentYear = csv.GetField <int>("Development Year"), IncrementalValue = csv.GetField <decimal?>("Incremental Value"), }; records.Add(record); } return(records); }
public void TwoErrorsWhenDevelopmentYearIs1066AndOlderThanOriginYear() { // Arrange var record = new YearlyData { DevelopmentYear = 1066, OriginYear = 2000, ProductName = "Comp" }; // Act var result = _target.Validate(record); // Assert Assert.That(result.Errors[0], Is.EqualTo("The Development Year 1066 is less than the Origin Year 2000")); Assert.That(result.Errors[1], Is.EqualTo("The Development Year 1066 is too old")); }
public void WarningWhenOriginYearInTheFuture() { // It is also reasonable to consider this case an error - would normally check something like this with a B.A. // Arrange var record = new YearlyData { DevelopmentYear = 3000, OriginYear = 3000, ProductName = "Comp" }; // Act var result = _target.Validate(record); // Assert Assert.That(result.Warnings[0], Is.EqualTo("The Origin Year 3000 post dates the year that this PC’s system clock is set to (" + DateTime.Now.Year + ").")); }
public void Setup() { _target = new ProductClaimsRecord(); var origin90Dev90Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1990, IncrementalValue = 0.0m }; var origin90Dev91Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1991, IncrementalValue = 0.0m }; var origin90Dev92Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1992, IncrementalValue = 0.0m }; var origin90Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1993, IncrementalValue = 0.0m }; var origin91Dev91Comp = new YearlyData { ProductName = "Comp", OriginYear = 1991, DevelopmentYear = 1991, IncrementalValue = 0.0m }; var origin91Dev92Comp = new YearlyData { ProductName = "Comp", OriginYear = 1991, DevelopmentYear = 1992, IncrementalValue = 0.0m }; var origin91Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1991, DevelopmentYear = 1993, IncrementalValue = 0.0m }; var origin92Dev92Comp = new YearlyData { ProductName = "Comp", OriginYear = 1992, DevelopmentYear = 1992, IncrementalValue = 110.0m }; var origin92Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1992, DevelopmentYear = 1993, IncrementalValue = 170.0m }; var origin93Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1993, DevelopmentYear = 1993, IncrementalValue = 200.0m }; _records = new List <YearlyData> { origin90Dev90Comp, origin90Dev91Comp, origin90Dev92Comp, origin90Dev93Comp, origin91Dev91Comp, origin91Dev92Comp, origin91Dev93Comp, origin92Dev92Comp, origin92Dev93Comp, origin93Dev93Comp }; }
public void Setup() { _target = new RecordsPerProduct(); var origin90Dev90Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1990, IncrementalValue = 0.0m }; var origin90Dev91Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1991, IncrementalValue = 0.0m }; var origin90Dev92Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1992, IncrementalValue = 0.0m }; var origin90Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1990, DevelopmentYear = 1993, IncrementalValue = 0.0m }; var origin91Dev91Comp = new YearlyData { ProductName = "Comp", OriginYear = 1991, DevelopmentYear = 1991, IncrementalValue = 0.0m }; var origin91Dev92Comp = new YearlyData { ProductName = "Comp", OriginYear = 1991, DevelopmentYear = 1992, IncrementalValue = 0.0m }; var origin91Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1991, DevelopmentYear = 1993, IncrementalValue = 0.0m }; var origin92Dev92Comp = new YearlyData { ProductName = "Comp", OriginYear = 1992, DevelopmentYear = 1992, IncrementalValue = 110.0m }; var origin92Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1992, DevelopmentYear = 1993, IncrementalValue = 170.0m }; var origin93Dev93Comp = new YearlyData { ProductName = "Comp", OriginYear = 1993, DevelopmentYear = 1993, IncrementalValue = 200.0m }; var origin90Dev90NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1990, DevelopmentYear = 1990, IncrementalValue = 45.2m }; var origin90Dev91NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1990, DevelopmentYear = 1991, IncrementalValue = 64.8m }; var origin90Dev92NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1990, DevelopmentYear = 1992, IncrementalValue = 0.0m }; var origin90Dev93NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1990, DevelopmentYear = 1993, IncrementalValue = 37.0m }; var origin91Dev91NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1991, DevelopmentYear = 1991, IncrementalValue = 50.0m }; var origin91Dev92NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1991, DevelopmentYear = 1992, IncrementalValue = 75.0m }; var origin91Dev93NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1991, DevelopmentYear = 1993, IncrementalValue = 25.0m }; var origin92Dev92NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1992, DevelopmentYear = 1992, IncrementalValue = 55.0m }; var origin92Dev93NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1992, DevelopmentYear = 1993, IncrementalValue = 85.0m }; var origin93Dev93NonComp = new YearlyData { ProductName = "Non-Comp", OriginYear = 1993, DevelopmentYear = 1993, IncrementalValue = 100.0m }; _records = new List <YearlyData> { origin90Dev90Comp, origin90Dev91Comp, origin90Dev92Comp, origin90Dev93Comp, origin91Dev91Comp, origin91Dev92Comp, origin91Dev93Comp, origin92Dev92Comp, origin92Dev93Comp, origin93Dev93Comp, origin90Dev90NonComp, origin90Dev91NonComp, origin90Dev92NonComp, origin90Dev93NonComp, origin91Dev91NonComp, origin91Dev92NonComp, origin91Dev93NonComp, origin92Dev92NonComp, origin92Dev93NonComp, origin93Dev93NonComp, }; }
public Defects Validate(YearlyData yearlyData) { // Add any validation relevant rules relating to allowed product name values return(_defects); }