public static bool For(Procurement entity, out AdProcurement value, out string validationError) { var errorMessage = string.Empty; var isValidationPassed = false; var adProcurement = new AdProcurement(); try { var validator = new ProcurementEntityValidator(); var results = validator.Validate(entity); if (!results.IsValid) { errorMessage = string.Join("\n", results.Errors); } else { adProcurement.Project = int.Parse(entity.Project); adProcurement.Complexity = entity.Complexity; adProcurement.Category = entity.Category; adProcurement.SavingsAmount = entity.SavingsAmount == "NULL" ? string.Empty : entity.SavingsAmount; adProcurement.Currency = entity.Currency == "NULL" ? string.Empty : entity.Currency; adProcurement.StartDate = DateTime.ParseExact(entity.StartDate, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); adProcurement.Description = entity.Description; adProcurement.Responsible = entity.Responsible; } } catch (Exception ex) { errorMessage = ex.Message; } value = adProcurement; validationError = errorMessage; return(isValidationPassed); }
public void Should_ReturnError_With_WrongStartDateFormat(string line) { var expectedResult = "Start date should conform to the following format: yyyy-mm-dd hh:mm:ss.sss"; var lineParser = new LineParser(); var deserializeRowData = new DeserializeRowData <Procurement>(); var headerColumnDictionay = lineParser.TabSeparatedParser(headerString); var rowColumnDictionary = lineParser.TabSeparatedParser(line); var entity = deserializeRowData.Deserialize(headerColumnDictionay, rowColumnDictionary, attributeMappings); var actualResult = string.Empty; var results = new ProcurementEntityValidator().Validate(entity); if (!results.IsValid) { actualResult = string.Join("", results.Errors); } Assert.Equal(expectedResult, actualResult); }
public void Should_ReturnError_With_ComplexityDiffersFromGivenValues(string line) { var expectedResult = $"Column Complexity should only have following values: {string.Join(",", validComplexityTypes)}"; var lineParser = new LineParser(); var deserializeRowData = new DeserializeRowData <Procurement>(); var headerColumnDictionay = lineParser.TabSeparatedParser(headerString); var rowColumnDictionary = lineParser.TabSeparatedParser(line); var entity = deserializeRowData.Deserialize(headerColumnDictionay, rowColumnDictionary, attributeMappings); var actualResult = string.Empty; var results = new ProcurementEntityValidator().Validate(entity); if (!results.IsValid) { actualResult = string.Join("", results.Errors); } Assert.Equal(expectedResult, actualResult); }
public void Should_ReturnError_With_WrongSavingAmountFormat(string line) { var expectedResult = "Money (Savings amount) values should conform be numbers with a point as the decimal separator"; var lineParser = new LineParser(); var deserializeRowData = new DeserializeRowData <Procurement>(); var headerColumnDictionay = lineParser.TabSeparatedParser(headerString); var rowColumnDictionary = lineParser.TabSeparatedParser(line); var entity = deserializeRowData.Deserialize(headerColumnDictionay, rowColumnDictionary, attributeMappings); var actualResult = string.Empty; var results = new ProcurementEntityValidator().Validate(entity); if (!results.IsValid) { actualResult = string.Join("", results.Errors); } Assert.Equal(expectedResult, actualResult); }