aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Cully <bjc@kublai.com>2012-02-09 23:33:47 -0500
committerBrian Cully <bjc@kublai.com>2012-02-09 23:33:47 -0500
commita88c76b355f9b8d5e71a118414a6579488486c3b (patch)
tree2dfd2208c1772d279a4986a3e39a8c6d6526f067
parentbf05c0332848fa0598be132a5151cfb151288958 (diff)
downloadmysqlerl-a88c76b355f9b8d5e71a118414a6579488486c3b.tar.gz
mysqlerl-a88c76b355f9b8d5e71a118414a6579488486c3b.zip
Add a few tests for db writing
-rw-r--r--test/mysqlerl_writequery_SUITE.erl173
1 files changed, 173 insertions, 0 deletions
diff --git a/test/mysqlerl_writequery_SUITE.erl b/test/mysqlerl_writequery_SUITE.erl
new file mode 100644
index 0000000..09136f9
--- /dev/null
+++ b/test/mysqlerl_writequery_SUITE.erl
@@ -0,0 +1,173 @@
+%%%-------------------------------------------------------------------
+%%% @author Brian Cully <bjc@kublai.com>
+%%% @copyright (C) 2012, Brian Cully
+%%% @doc
+%%%
+%%% @end
+%%% Created : 9 Feb 2012 by Brian Cully <bjc@kublai.com>
+%%%-------------------------------------------------------------------
+-module(mysqlerl_writequery_SUITE).
+
+-compile(export_all).
+
+-include_lib("common_test/include/ct.hrl").
+
+%%--------------------------------------------------------------------
+%% @spec suite() -> Info
+%% Info = [tuple()]
+%% @end
+%%--------------------------------------------------------------------
+suite() ->
+ [{timetrap,{seconds,30}}].
+
+%%--------------------------------------------------------------------
+%% @spec init_per_suite(Config0) ->
+%% Config1 | {skip,Reason} | {skip_and_save,Reason,Config1}
+%% Config0 = Config1 = [tuple()]
+%% Reason = term()
+%% @end
+%%--------------------------------------------------------------------
+init_per_suite(Config) ->
+ ok = mysqlerl_test_lib:create_db(Config),
+ ok = mysqlerl_test_lib:create_table(Config),
+ ok = application:start(mysqlerl),
+ Config.
+
+%%--------------------------------------------------------------------
+%% @spec end_per_suite(Config0) -> void() | {save_config,Config1}
+%% Config0 = Config1 = [tuple()]
+%% @end
+%%--------------------------------------------------------------------
+end_per_suite(Config) ->
+ ok = application:stop(mysqlerl),
+ ok = mysqlerl_test_lib:drop_db(Config).
+
+%%--------------------------------------------------------------------
+%% @spec init_per_group(GroupName, Config0) ->
+%% Config1 | {skip,Reason} | {skip_and_save,Reason,Config1}
+%% GroupName = atom()
+%% Config0 = Config1 = [tuple()]
+%% Reason = term()
+%% @end
+%%--------------------------------------------------------------------
+init_per_group(_GroupName, Config) ->
+ Config.
+
+%%--------------------------------------------------------------------
+%% @spec end_per_group(GroupName, Config0) ->
+%% void() | {save_config,Config1}
+%% GroupName = atom()
+%% Config0 = Config1 = [tuple()]
+%% @end
+%%--------------------------------------------------------------------
+end_per_group(_GroupName, _Config) ->
+ ok.
+
+%%--------------------------------------------------------------------
+%% @spec init_per_testcase(TestCase, Config0) ->
+%% Config1 | {skip,Reason} | {skip_and_save,Reason,Config1}
+%% TestCase = atom()
+%% Config0 = Config1 = [tuple()]
+%% Reason = term()
+%% @end
+%%--------------------------------------------------------------------
+init_per_testcase(_TestCase, Config) ->
+ DBInfo = ct:get_config(db_info),
+ {ok, DBRef} = mysqlerl:connect(?config(host, DBInfo),
+ ?config(port, DBInfo),
+ ?config(name, DBInfo),
+ ?config(username, DBInfo),
+ ?config(password, DBInfo),
+ ?config(options, DBInfo)),
+ [{db_ref, DBRef} | Config].
+
+%%--------------------------------------------------------------------
+%% @spec end_per_testcase(TestCase, Config0) ->
+%% void() | {save_config,Config1} | {fail,Reason}
+%% TestCase = atom()
+%% Config0 = Config1 = [tuple()]
+%% Reason = term()
+%% @end
+%%--------------------------------------------------------------------
+end_per_testcase(_TestCase, Config) ->
+ ok = mysqlerl:disconnect(?config(db_ref, Config)).
+
+%%--------------------------------------------------------------------
+%% @spec groups() -> [Group]
+%% Group = {GroupName,Properties,GroupsAndTestCases}
+%% GroupName = atom()
+%% Properties = [parallel | sequence | Shuffle | {RepeatType,N}]
+%% GroupsAndTestCases = [Group | {group,GroupName} | TestCase]
+%% TestCase = atom()
+%% Shuffle = shuffle | {shuffle,{integer(),integer(),integer()}}
+%% RepeatType = repeat | repeat_until_all_ok | repeat_until_all_fail |
+%% repeat_until_any_ok | repeat_until_any_fail
+%% N = integer() | forever
+%% @end
+%%--------------------------------------------------------------------
+groups() ->
+ [].
+
+%%--------------------------------------------------------------------
+%% @spec all() -> GroupsAndTestCases | {skip,Reason}
+%% GroupsAndTestCases = [{group,GroupName} | TestCase]
+%% GroupName = atom()
+%% TestCase = atom()
+%% Reason = term()
+%% @end
+%%--------------------------------------------------------------------
+all() ->
+ [insert_query, insert_param_query,
+ update_query, update_param_query,
+ delete_query, delete_param_query].
+
+%%--------------------------------------------------------------------
+%% @spec TestCase(Config0) ->
+%% ok | exit() | {skip,Reason} | {comment,Comment} |
+%% {save_config,Config1} | {skip_and_save,Reason,Config1}
+%% Config0 = Config1 = [tuple()]
+%% Reason = term()
+%% Comment = term()
+%% @end
+%%--------------------------------------------------------------------
+insert_query(doc) ->
+ ["Test results from insertion with raw SQL."];
+insert_query(Config) ->
+ {updated, 1} = mysqlerl:sql_query(?config(db_ref, Config),
+ "INSERT INTO user (username, password) VALUES ('sophia', MD5('tester'))").
+
+insert_param_query(doc) ->
+ ["Test results from insertion with parameterized SQL."];
+insert_param_query(Config) ->
+ {updated, 1} = mysqlerl:param_query(?config(db_ref, Config),
+ "INSERT INTO user (username, password) VALUES (?, MD5(?))",
+ [{{sql_varchar, 20}, "satchmo"},
+ {{sql_varchar, 64}, "thebiggestone"}]).
+
+update_query(doc) ->
+ ["Test results from update with raw SQL."];
+update_query(Config) ->
+ {updated, 1} = mysqlerl:sql_query(?config(db_ref, Config),
+ "UPDATE user SET password=MD5('newpass') WHERE username='bjc'").
+
+update_param_query(doc) ->
+ ["Test results from update with parameterized SQL."];
+update_param_query(Config) ->
+ {updated, 1} = mysqlerl:param_query(?config(db_ref, Config),
+ "UPDATE user SET password=MD5(?) WHERE username=?",
+ [{{sql_varchar, 20}, "siobain"},
+ {{sql_varchar, 64}, "sosecret"}]).
+
+delete_query(doc) ->
+ ["Test results from delete with raw SQL."];
+delete_query(Config) ->
+ {updated, 1} = mysqlerl:sql_query(?config(db_ref, Config),
+ "DELETE FROM user WHERE username='bjc'").
+
+delete_param_query(doc) ->
+ ["Test results from delete with parameterized SQL."];
+delete_param_query(Config) ->
+ {updated, 1} = mysqlerl:param_query(?config(db_ref, Config),
+ "DELETE FROM user WHERE username=?",
+ [{{sql_varchar, 20}, "siobain"}]).
+