protected void CheckSettingsAndFirstRow(DataTable dt, ResultSetComparisonSettings settings) { if (dt.Rows.Count == 0) { return; } var dr = dt.Rows[0]; for (int i = 0; i < dr.Table.Columns.Count; i++) { if (!dr.IsNull(i)) { if (settings.IsNumeric(i) && IsNumericField(dr.Table.Columns[i])) { continue; } var numericConverter = new NumericConverter(); if (settings.IsNumeric(i) && !(numericConverter.IsValid(dr[i]) || BaseComparer.IsValidInterval(dr[i]))) { var exception = string.Format("The column with an index of {0} is expecting a numeric value but the first row of your result set contains a value '{1}' not recognized as a valid numeric value or a valid interval." , i, dr[i].ToString()); if (numericConverter.IsValid(dr[i].ToString().Replace(",", "."))) { exception += " Aren't you trying to use a comma (',' ) as a decimal separator? NBi requires that the decimal separator must be a '.'."; } throw new ResultSetComparerException(exception); } if (settings.IsDateTime(i) && IsDateTimeField(dr.Table.Columns[i])) { return; } if (settings.IsDateTime(i) && !BaseComparer.IsValidDateTime(dr[i].ToString())) { throw new ResultSetComparerException( string.Format("The column with an index of {0} is expecting a date & time value but the first row of your result set contains a value '{1}' not recognized as a valid date & time value." , i, dr[i].ToString())); } } } }
protected void CheckSettingsFirstRowCell(ColumnRole columnRole, ColumnType columnType, DataColumn dataColumn, object value, string[] messages) { var columnName = dataColumn.ColumnName; if (!DBNull.Value.Equals(value)) { if (columnRole != ColumnRole.Ignore) { if (columnType == ColumnType.Numeric && IsNumericField(dataColumn)) { return; } var numericCaster = new NumericCaster(); if (columnType == ColumnType.Numeric && !(numericCaster.IsValid(value) || BaseComparer.IsValidInterval(value))) { var exception = string.Format(messages[0] , columnName, value.ToString()); if (numericCaster.IsValid(value.ToString().Replace(",", "."))) { exception += messages[1]; } throw new EquivalerException(exception); } if (columnType == ColumnType.DateTime && IsDateTimeField(dataColumn)) { return; } if (columnType == ColumnType.DateTime && !BaseComparer.IsValidDateTime(value.ToString())) { throw new EquivalerException( string.Format(messages[2] , columnName, value.ToString())); } } } }
public void IsValidDateTime_String_False() { Assert.That(BaseComparer.IsValidDateTime("DateTime"), Is.False); }
public void IsValidDateTime_ddmm_True() { Assert.That(BaseComparer.IsValidDateTime("16.12"), Is.True); }
public void IsValidDateTime_mmdd_True() { Assert.That(BaseComparer.IsValidDateTime("12/17"), Is.True); }
public void IsValidDateTime_yyyymmdd_True() { Assert.That(BaseComparer.IsValidDateTime("2013-10-16"), Is.True); }
public void IsValidDateTime_ddmyy_True() { Assert.That(BaseComparer.IsValidDateTime("10.5.2013"), Is.True); }
public void IsValidDateTime_dmyy_True() { Assert.That(BaseComparer.IsValidDateTime("5.12.78"), Is.True); }
public void IsValidDateTime_mmddyy_True() { Assert.That(BaseComparer.IsValidDateTime("10/16/13"), Is.True); }
public void IsValidDateTime_xxxxyyyy_True() { Assert.That(BaseComparer.IsValidDateTime("10/10/2013"), Is.True); }