public void VerifyGenerateRawData()
        {
            // Arrange
            var          statement = new InsertSqlStatement("MagicTable");
            const string Column1   = "Column_1";
            const string Column2   = "Column_2";
            const string Column3   = "Magical_arbitrary_column";

            statement.Columns.AddRange(new[]
            {
                Column1,
                Column2,
                Column3
            });
            statement.Rows.AddRange(new[]
            {
                new List <object> {
                    "Data 1", 24, true
                },
                new List <object> {
                    "Cool 2", 42, false
                }
            });

            // Act
            var query = statement.GenerateQuery();

            // Assert
            var expected = $@"
INSERT INTO MagicTable ({Column1}, {Column2}, {Column3})
VALUES ('Data 1', 24, 1),
('Cool 2', 42, 0);
";

            foreach (var c in Environment.NewLine)
            {
                expected = expected.Trim(c);
            }
            foreach (var c in Environment.NewLine)
            {
                expected = expected.Trim(c);
            }

            query.ShouldBe(expected);
        }
        public void VerifyInsertWithNullValues()
        {
            // Arrange
            var statement = new InsertSqlStatement("My_magic_table");

            statement.Columns.AddRange(new[] { "Column A", "Column B", "Column C" });
            statement.Rows.Add(new List <object> {
                "Value A", 123, null
            });

            // Act
            string generatedQuery = null;

            Should.NotThrow(() => generatedQuery = statement.GenerateQuery());

            // Assert
            string.IsNullOrEmpty(generatedQuery).ShouldBeFalse();
        }