Example #1
0
        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.");
        }