public void NCHAR_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, "nchar", false, 0, 0); Assert.AreEqual("N'hello world!'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "nchar"); Assert.AreEqual("hello world!", FieldScripting.formatNchar(data, false), "nchar"); baseData = "trailing space "; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "nchar", false, 0, 0); Assert.AreEqual("N'trailing space'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "nchar trims trailing space when scripted."); Assert.AreEqual("trailing space", FieldScripting.formatNchar(data, false), "nchar trims trailing space when scripted."); baseData = "That's fun! "; data = baseData; fieldInfo = SchemaScriptingTests.FakeColumn("test", "test", 15, "nchar", false, 0, 0); Assert.AreEqual("N'That''s fun!'", FieldScripting.valueAsTSQLLiteral(data, fieldInfo), "nchar escapes quotes in strings."); Assert.AreEqual("That's fun!", FieldScripting.formatNchar(data, false), "nchar does not escape quotes in strings when not scripted for SQL."); }