public static FakeColumn ( string ColumnName, string BaseTableName, int ColumnSize, string DataType, bool AllowNulls, short NumericPrecision, short NumericScale, bool IsHidden = false ) : SQLColumn | ||
ColumnName | string | |
BaseTableName | string | |
ColumnSize | int | |
DataType | string | |
AllowNulls | bool | |
NumericPrecision | short | |
NumericScale | short | |
IsHidden | bool | |
Результат | SQLColumn |
public void CHAR_Data_ScriptsCorrectly() { string baseData = "hello world! "; //extra spaces to pad to 15 characters are intentional since this is how the data comes back from SQL with the fixed-width type. object data = baseData; var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "char", false, 0, 0); Assert.AreEqual("'hello world!'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "char"); Assert.AreEqual("hello world!", FieldScripting.formatChar(data, false), "char"); baseData = "trailing space "; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "char", false, 0, 0); Assert.AreEqual("'trailing space'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "char trims trailing space when scripted."); Assert.AreEqual("trailing space", FieldScripting.formatChar(data, false), "char trims trailing space when scripted."); baseData = "That's fun! "; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "char", false, 0, 0); Assert.AreEqual("'That''s fun!'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "char escapes quotes in strings when scripted for SQL."); Assert.AreEqual("That's fun!", FieldScripting.formatChar(data, false), "char does not escape quotes in strings when not scripted for SQL."); }
public void NTEXT_Data_ScriptsCorrectly() { string baseData = "hello world!"; object data = baseData; var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "ntext", false, 0, 0); Assert.AreEqual("N'hello world!'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "ntext"); Assert.AreEqual("hello world!", FieldScripting.formatNtext(data, false), "ntext"); baseData = "trailing space "; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "ntext", false, 0, 0); Assert.AreEqual("N'trailing space '", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "ntext does not trim trailing space when scripted."); Assert.AreEqual("trailing space ", FieldScripting.formatNtext(data, false), "ntext does not trim trailing space when scripted."); baseData = "That's fun!"; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "ntext", false, 0, 0); Assert.AreEqual("N'That''s fun!'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "nvarchar escapes quotes in strings."); Assert.AreEqual("That's fun!", FieldScripting.formatNtext(data, false), "nvarchar does not escape quotes in strings when not scripted for SQL."); }
public void DECIMAL_Data_ScriptsCorrectly() { Decimal baseData = 12345.6789M; object data = baseData; var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "decimal", false, 10, 4); Assert.AreEqual("12345.6789", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "positive decimal"); baseData = -12345.6789M; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "decimal", false, 10, 4); Assert.AreEqual("-12345.6789", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "negative decimal"); baseData = 12345.0000M; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "decimal", false, 10, 4); Assert.AreEqual("12345", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "insignificant digits are trimmed"); baseData = 12345.1000M; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "decimal", false, 10, 4); Assert.AreEqual("12345.1", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "insignificant digits are trimmed (partially significant decimal)"); }
public void REAL_Data_ScriptsCorrectly() { Single baseData = 200.1234F; object data = baseData; var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 32, "real", false, 0, 0); Assert.AreEqual("200.1234", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "positive real"); baseData = -200.1234F; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 32, "real", false, 0, 0); Assert.AreEqual("-200.1234", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "negative real"); baseData = 12345.0000F; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "real", false, 10, 4); Assert.AreEqual("12345", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "insignificant digits are trimmed"); baseData = 12345.2000F; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "float", false, 10, 4); Assert.AreEqual("12345.2", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "insignificant digits are trimmed (partially significant decimal)"); }
public void SMALLMONEY_Data_ScriptsCorrectly() { Decimal baseData = 200000.1234M; object data = baseData; var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 32, "smallmoney", false, 10, 4); Assert.AreEqual("200000.1234", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "positive smallmoney"); baseData = -200000.1234M; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 32, "smallmoney", false, 10, 4); Assert.AreEqual("-200000.1234", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "negative smallmoney"); baseData = 12345.0000M; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "smallmoney", false, 10, 4); Assert.AreEqual("12345", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "insignificant digits are trimmed"); baseData = 12345.1000M; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "smallmoney", false, 10, 4); Assert.AreEqual("12345.1", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "insignificant digits are trimmed (partially significant decimal)"); }
public void DATETIME_Data_ScriptsCorrectly() { DateTime baseData = new DateTime(2000, 10, 31, 2, 33, 44); object data = baseData; var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 32, "datetime", false, 0, 0); Assert.AreEqual("'2000-10-31T02:33:44'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "datetime no fractional seconds"); Assert.AreEqual("2000-10-31T02:33:44", FieldScripting.formatDateTime(data, false), "datetime no fractional seconds"); baseData = baseData.AddTicks(1230000); data = baseData; Assert.AreEqual("'2000-10-31T02:33:44.123'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "datetime fractional seconds"); Assert.AreEqual("2000-10-31T02:33:44.123", FieldScripting.formatDateTime(data, false), "datetime fractional seconds"); baseData = baseData = new DateTime(2000, 10, 31, 2, 33, 44).AddMilliseconds(100); data = baseData; Assert.AreEqual("'2000-10-31T02:33:44.1'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "partial fractional seconds"); Assert.AreEqual("2000-10-31T02:33:44.1", FieldScripting.formatDateTime(data, false), "partial fractional seconds"); baseData = new DateTime(2000, 10, 31, 0, 0, 0); data = baseData; Assert.AreEqual("'2000-10-31'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "midnight omits time altogether"); Assert.AreEqual("2000-10-31", FieldScripting.formatDateTime(data, false), "midnight omits time altogether"); }
public void NULL_Data_ScriptsAsNull() { var fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 64, "int", false, 0, 0); Assert.AreEqual("NULL", FieldScripting.valueAsTSQLLiteral((object)System.DBNull.Value, fieldInfo), "int"); }