private static void SetupPersonTable()
        {
            TestsPersons = new[]
            {
                new Person(1, "Bob", 32),
                new Person(2, "Alice", 27),
                new Person(3, "foo", Byte.MaxValue)
            };

            Assert.That.RanToCompletion(() =>
            {
                try
                {
                    CreateTable();
                }
                catch (SqlException)
                {
                    DeleteTable(PERSONS_TABLE);
                    CreateTable();
                }
            });

            void CreateTable()
            {
                SqlLine initLine = SqlLine.Build($"CREATE TABLE [dbo].[{PERSONS_TABLE}] (" +
                                                 "[person_id] INT NOT NULL, " +
                                                 "[person_age] TINYINT NULL, " +
                                                 "[person_name] NVARCHAR (50) NULL, " +
                                                 "PRIMARY KEY CLUSTERED ([person_id] ASC))");

                initLine.ExecuteNonQuery();
            }

            Assert.That.RanToCompletion(() =>
            {
                SqlLine deleteLine = SqlLine.Build($"Delete from {PERSONS_TABLE}");

                deleteLine.ExecuteNonQuery();
            });


            Assert.That.RanToCompletion(() =>
            {
                SqlLine insertLine = SqlLine.Build($"Insert into {PERSONS_TABLE}").Values().Param <Person>(InsertPerson);

                insertLine.ExecuteNonQuery(TestsPersons[0]);
                insertLine.ExecuteNonQuery(TestsPersons[1]);
                insertLine.ExecuteNonQuery(TestsPersons[2]);
            });
        }
        private static void DeleteTable(string tableName)
        {
            SqlLine deleteLine = SqlLine.Build($"Drop Table [dbo].[{tableName}]");

            deleteLine.ExecuteNonQuery();
        }