%% Test cases
-export(
[ t_of_result/1
+ , t_of_undefined/1
, t_put/1
, t_get/1
, t_map/1
, t_iter/1
+ , t_pipe/1
+ , t_validate/1
]).
groups() ->
Tests =
[ t_of_result
+ , t_of_undefined
, t_put
, t_get
, t_map
, t_iter
+ , t_pipe
+ , t_validate
],
Properties = [parallel],
[ {?GROUP, Properties, Tests}
ResultError = {error, Bar},
{some, Foo} = hope_option:of_result(ResultOk),
none = hope_option:of_result(ResultError).
+
+t_pipe(_Cfg) ->
+ Steps =
+ [ fun (0) -> hope_option:return(1); (_) -> none end
+ , fun (1) -> hope_option:return(2); (_) -> none end
+ , fun (2) -> hope_option:return(3); (_) -> none end
+ ],
+ {some, 3} = hope_option:pipe(Steps, 0),
+ none = hope_option:pipe(Steps, 1),
+ none = hope_option:pipe(Steps, 2),
+ none = hope_option:pipe(Steps, 3).
+
+t_of_undefined(_Cfg) ->
+ Foo = foo,
+ Bar = bar,
+ Baz = baz,
+ {some, Foo} = hope_option:of_undefined(Foo),
+ {some, Bar} = hope_option:of_undefined(Bar),
+ {some, Baz} = hope_option:of_undefined(Baz),
+ none = hope_option:of_undefined(undefined).
+
+t_validate(_Cfg) ->
+ IsFoo = fun (X) -> X =:= foo end,
+ none = hope_option:validate(none, IsFoo),
+ none = hope_option:validate({some, bar}, IsFoo),
+ {some, foo} = hope_option:validate({some, foo}, IsFoo).