public void When_binding_function_to_a_closed_connection()
 {
     using (var conn = new SQLiteInMemoryConnection())
     {
         var func = new SQLiteScalarFunction("Foo", 1, args => null);
         Should.Throw <InvalidOperationException>(() => conn.BindFunction(func))
         .Message.ShouldBe("Cannot bind a function to a closed.");
     }
 }
        public async Task When_binding_a_scalar_function_to_an_opened_connection()
        {
            using (var conn = new SQLiteInMemoryConnection())
            {
                string receivedArg = null;
                var    func        = new SQLiteScalarFunction("Funky", 1, args =>
                {
                    receivedArg = args[0].ToString();
                    return("bar");
                });

                conn.Open();
                conn.BindFunction(func);

                var foo = (await conn.QueryAsync <string>("SELECT \"foo\"")).First();
                foo.ShouldBe("foo");

                var bar = (await conn.QueryAsync <string>("SELECT Funky(\"foo\")")).First();
                bar.ShouldBe("bar");
                receivedArg.ShouldBe("foo");
            }
        }