From 9b23587734b7580153e8ba8610e77484f5de88b7 Mon Sep 17 00:00:00 2001 From: Maas-Maarten Zeeman Date: Fri, 30 Dec 2011 16:37:21 +0100 Subject: [PATCH] Fixed test, added error message --- test/sqlite_test.erl | 101 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 test/sqlite_test.erl diff --git a/test/sqlite_test.erl b/test/sqlite_test.erl new file mode 100644 index 0000000..d800fe8 --- /dev/null +++ b/test/sqlite_test.erl @@ -0,0 +1,101 @@ +%% +%% +%% + +-module(sqlite_test). + +-include("../src/edbc.hrl"). + +-include_lib("eunit/include/eunit.hrl"). + +open_single_database_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + ok = gen_db:close(C), + ok. + +open_commit_close_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + ok = gen_db:commit(C), + ok = gen_db:close(C), + ok. + +open_rollback_close_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + ok = gen_db:rollback(C), + ok = gen_db:close(C), + ok. + +sql_syntax_error_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + {error, sqlite, Msg} = gen_db:run("dit is geen sql", C), + {sqlite3_error, "near \"dit\": syntax error"} = Msg, + ok. + +%% +%% +tables_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + [] = gen_db:tables(C), + ok = gen_db:run("create table table1(first_column char(50), second_column char(10));", C), + [table1] = gen_db:tables(C), + ok = gen_db:run("create table table2(first_column char(50), second_column char(10));", C), + [table1, table2] = gen_db:tables(C), + ok = gen_db:run("create table table3(first_column char(50), second_column char(10));", C), + [table1, table2, table3] = gen_db:tables(C), + ok = gen_db:run("drop table table2;", C), + [table1, table3] = gen_db:tables(C), + ok = gen_db:run("drop table table1;", C), + [table3] = gen_db:tables(C), + ok = gen_db:run("drop table table3;", C), + [] = gen_db:tables(C), + ok. + +%% +%% +describe_table_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + [] = gen_db:tables(C), + ok = gen_db:run("create table table1(first_column char(50) not null, + second_column char(10), + third_column INTEGER default 10, + CONSTRAINT pk_first_column PRIMARY KEY (first_column));", C), + [table1] = gen_db:tables(C), + [Col1, Col2, Col3] = gen_db:describe_table(table1, C), + first_column = Col1#edbc_column_info.name, + second_column = Col2#edbc_column_info.name, + third_column = Col3#edbc_column_info.name, + ok. + +%% +%% +column_names_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + [] = gen_db:tables(C), + ok = gen_db:run("create table table1(first_column CHAR(50) not null, + second_column CHAR(10), + third_column INTEGER default 10, + CONSTRAINT pk_first_column PRIMARY KEY (first_column));", C), + [table1] = gen_db:tables(C), + [first_column, second_column, third_column] = gen_db:column_names(table1, C). + +%% +%% +execute_test() -> + {ok, C} = gen_db:open(sqlite, [":memory:"]), + ok = gen_db:run("create table table1(first_column char(50) not null, + second_column char(10), + third_column INTEGER default 10, + CONSTRAINT pk_first_column PRIMARY KEY (first_column));", C), + + ok = gen_db:run("insert into table1 values(?, ?, ?);", ["hello", "world", 1], C), + + {ok, + {first_column, second_column, third_column}, + [{<<"hello">>, <<"world">>, 1}]} = gen_db:execute("select * from table1", C), + + {ok, + {first_column}, + [{<<"hello">>}]} = gen_db:execute("select t.first_column from table1 t", C), + + ok. +