diff --git a/test/sqlite3_test.erl b/test/sqlite3_test.erl index 6d8f67a..0d36075 100644 --- a/test/sqlite3_test.erl +++ b/test/sqlite3_test.erl @@ -205,20 +205,28 @@ prepared_test() -> Columns = ["id", "name", "age", "wage"], Abby = {1, <<"abby">>, 20, 2000}, Marge = {2, <<"marge">>, 30, 2000}, + Null = {3, null, 40, 3000}, TableInfo = [{id, integer, [primary_key]}, {name, text, [not_null, unique]}, {age, integer}, {wage, integer}], sqlite3:open(prepared, [in_memory]), ok = sqlite3:create_table(prepared, user, TableInfo), sqlite3:write(prepared, user, [{name, "abby"}, {age, 20}, {wage, 2000}]), sqlite3:write(prepared, user, [{name, "marge"}, {age, 30}, {wage, 2000}]), - {ok, Ref} = sqlite3:prepare(prepared, "SELECT * FROM user"), - ?assertEqual(Columns, sqlite3:columns(prepared, Ref)), - ?assertEqual(Abby, sqlite3:next(prepared, Ref)), - ?assertEqual(ok, sqlite3:reset(prepared, Ref)), - ?assertEqual(Abby, sqlite3:next(prepared, Ref)), - ?assertEqual(Marge, sqlite3:next(prepared, Ref)), - ?assertEqual(done, sqlite3:next(prepared, Ref)), - ?assertEqual(ok, sqlite3:finalize(prepared, Ref)), - ?assertMatch({error, _, _}, sqlite3:next(prepared, Ref)), + {ok, Ref1} = sqlite3:prepare(prepared, "SELECT * FROM user"), + {ok, Ref2} = sqlite3:prepare(prepared, "SELECT * FROM user WHERE name = ?"), + ?assertEqual(Columns, sqlite3:columns(prepared, Ref1)), + ?assertEqual(Abby, sqlite3:next(prepared, Ref1)), + ?assertEqual(ok, sqlite3:reset(prepared, Ref1)), + ?assertEqual(Abby, sqlite3:next(prepared, Ref1)), + ?assertEqual(Marge, sqlite3:next(prepared, Ref1)), + ?assertEqual(done, sqlite3:next(prepared, Ref1)), + ?assertEqual(ok, sqlite3:finalize(prepared, Ref1)), + ?assertMatch({error, _, _}, sqlite3:next(prepared, Ref1)), + ?assertEqual(Null, sqlite3:next(prepared, Ref2)), + ?assertEqual(ok, sqlite3:reset(prepared, Ref2)), + ?assertEqual(ok, sqlite3:bind(prepared, Ref2, ["marge"])), + ?assertEqual(Marge, sqlite3:next(prepared, Ref2)), + ?assertEqual(done, sqlite3:next(prepared, Ref2)), + ?assertEqual(ok, sqlite3:finalize(prepared, Ref2)), sqlite3:close(prepared). % create, read, update, delete