public void GetRowValuesString_DateTimeValue_ShouldBeWrappedByQuotes()
        {
            var data        = DateTime.Now;
            var dataColumns = new DataColumn[] { new DataColumn("Col1", typeof(DateTime)) };
            var dataTable   = GetDataTable(dataColumns);

            dataTable.Rows.Add(data);

            IQueryFormatter queryFormatter = new QueryFormatter();

            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().StartWith("'");
            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().EndWith("'");
        }
        public void GetRowValuesString_DecimalValue_ShouldNotBeWrappedByQuotes()
        {
            var data        = 1.1m;
            var dataColumns = new DataColumn[] { new DataColumn("Col1", typeof(decimal)) };
            var dataTable   = GetDataTable(dataColumns);

            dataTable.Rows.Add(data);

            IQueryFormatter queryFormatter = new QueryFormatter();

            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().BeEquivalentTo($"{data}");
            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().NotContain("'");
        }
        public void GetRowValuesString_DateTimeValue_ShouldHaveSqlFormatting(DateTime dateTime, string expectedFormat)
        {
            var dataColumns = new DataColumn[] { new DataColumn("Col1", typeof(DateTime)) };
            var dataTable   = GetDataTable(dataColumns);

            dataTable.Rows.Add(dateTime);

            IQueryFormatter queryFormatter = new QueryFormatter();

            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().BeEquivalentTo($"'{expectedFormat}'");
        }
        public void GetRowValuesString_StringValue_ShouldBeWrappedByQuotes()
        {
            var data        = "foo";
            var dataColumns = new DataColumn[] { new DataColumn("Col1", typeof(string)) };
            var dataTable   = GetDataTable(dataColumns);

            dataTable.Rows.Add(data);

            IQueryFormatter queryFormatter = new QueryFormatter();

            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().BeEquivalentTo($"'{data}'");
        }
        public void GetRowValuesString_ShouldProduceNull_IfColumnIsNullableAndValueIsNull()
        {
            var data = new object[] { null, null, null };
            var col1 = new DataColumn("Col1", typeof(string));

            col1.AllowDBNull = true;
            var col2 = new DataColumn("Col2", typeof(DateTime));

            col2.AllowDBNull = true;
            var col3 = new DataColumn("Col3", typeof(int));

            col3.AllowDBNull = true;
            var dataColumns = new DataColumn[] { col1, col2, col3 };
            var dataTable   = GetDataTable(dataColumns);

            dataTable.Rows.Add(data);

            IQueryFormatter queryFormatter = new QueryFormatter();

            queryFormatter.GetRowValuesString(dataTable.Rows[0]).Should().BeEquivalentTo($"NULL, NULL, NULL");
        }