From 2dc71691ff8d7494f80a2af26994c186779d6898 Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Fri, 12 Dec 2014 00:30:28 -0500 Subject: [PATCH] Test hope_option module. --- test/hope_option_SUITE.erl | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 test/hope_option_SUITE.erl diff --git a/test/hope_option_SUITE.erl b/test/hope_option_SUITE.erl new file mode 100644 index 0000000..2b3dab0 --- /dev/null +++ b/test/hope_option_SUITE.erl @@ -0,0 +1,77 @@ +-module(hope_option_SUITE). + +%% Callbacks +-export( + [ all/0 + , groups/0 + ]). + +%% Test cases +-export( + [ t_of_result/1 + , t_put/1 + , t_get/1 + , t_map/1 + , t_iter/1 + ]). + + +-define(GROUP, option). + + +%% ============================================================================ +%% Common Test callbacks +%% ============================================================================ + +all() -> + [ {group, ?GROUP} + ]. + +groups() -> + Tests = + [ t_of_result + , t_put + , t_get + , t_map + , t_iter + ], + Properties = [parallel], + [ {?GROUP, Properties, Tests} + ]. + + +%% ============================================================================= +%% Test cases +%% ============================================================================= + +t_put(_Cfg) -> + IsFoo = fun (foo) -> true; (_) -> false end, + {some, foo} = hope_option:put(foo, IsFoo), + none = hope_option:put(bar, IsFoo). + +t_get(_Cfg) -> + foo = hope_option:get({some, foo}, bar), + bar = hope_option:get(none , bar). + +t_map(_Cfg) -> + FooToBar = fun (foo) -> bar end, + {some, bar} = hope_option:map({some, foo}, FooToBar), + none = hope_option:map(none , FooToBar). + +t_iter(_Cfg) -> + Key = key, + Put = fun (Val) -> _ = put(Key, Val), ok end, + Get = fun () -> get(Key) end, + Val = foo, + ok = hope_option:iter(none , Put), + undefined = Get(), + ok = hope_option:iter({some, Val}, Put), + Val = Get(). + +t_of_result(_Cfg) -> + Foo = foo, + Bar = bar, + ResultOk = {ok, Foo}, + ResultError = {error, Bar}, + {some, Foo} = hope_option:of_result(ResultOk), + none = hope_option:of_result(ResultError). -- 2.20.1