diff --git a/src/adapter_test_helpers/sumo_basic_test_helper.erl b/src/adapter_test_helpers/sumo_basic_test_helper.erl index b586349..c5d3445 100644 --- a/src/adapter_test_helpers/sumo_basic_test_helper.erl +++ b/src/adapter_test_helpers/sumo_basic_test_helper.erl @@ -57,6 +57,7 @@ find_by(Config) -> undefined = Module:height(First), undefined = Module:description(First), {Today, _} = Module:created_at(First), + false = Module:is_blocked(First), true = Module:weird_field1(First), undefined = Module:weird_field2(First), undefined = Module:weird_field3(First), @@ -74,6 +75,7 @@ find_by(Config) -> 1.75 = Module:height(LastPerson), <<"description">> = Module:description(LastPerson), <<"profile_image">> = Module:profile_image(LastPerson), + true = Module:is_blocked(LastPerson), {mytuple, false, 1, "2", <<"3">>} = Module:weird_field1(LastPerson), [1, true, <<"hi">>, 1.1] = Module:weird_field2(LastPerson), #{a := 1, @@ -178,6 +180,7 @@ init_store(Name) -> height => 1.75, description => <<"description">>, profile_image => <<"profile_image">>, + is_blocked => true, weird_field1 => {mytuple, false, 1, "2", <<"3">>}, weird_field2 => [1, true, <<"hi">>, 1.1], weird_field3 => #{a => 1, b => [1, "2", <<"3">>], <<"c">> => false} diff --git a/src/adapter_test_helpers/sumo_test_people.erl b/src/adapter_test_helpers/sumo_test_people.erl index 9828ac7..962075a 100644 --- a/src/adapter_test_helpers/sumo_test_people.erl +++ b/src/adapter_test_helpers/sumo_test_people.erl @@ -23,6 +23,7 @@ height/1, description/1, profile_image/1, + is_blocked/1, weird_field1/1, weird_field2/1, weird_field3/1 @@ -51,6 +52,7 @@ height :: height(), description :: description(), profile_image :: profile_image(), + is_blocked :: boolean(), weird_field1 :: weird_field(), weird_field2 :: weird_field(), weird_field3 :: weird_field() @@ -77,6 +79,7 @@ sumo_sleep(Person) -> height => Person#person.height, description => Person#person.description, profile_image => Person#person.profile_image, + is_blocked => Person#person.is_blocked, weird_field1 => Person#person.weird_field1, weird_field2 => Person#person.weird_field2, weird_field3 => Person#person.weird_field3}. @@ -94,6 +97,7 @@ sumo_wakeup(Person) -> height = maps:get(height, Person), description = maps:get(description, Person), profile_image = maps:get(profile_image, Person), + is_blocked = maps:get(is_blocked, Person), weird_field1 = maps:get(weird_field1, Person), weird_field2 = maps:get(weird_field2, Person), weird_field3 = maps:get(weird_field3, Person) @@ -148,6 +152,7 @@ from_map(Map) -> height = maps:get(height, Map, undefined), description = maps:get(description, Map, undefined), profile_image = maps:get(profile_image, Map, undefined), + is_blocked = maps:get(is_blocked, Map, false), weird_field1 = maps:get(weird_field1, Map, undefined), weird_field2 = maps:get(weird_field2, Map, undefined), weird_field3 = maps:get(weird_field3, Map, undefined) @@ -193,6 +198,10 @@ description(Person) -> profile_image(Person) -> Person#person.profile_image. +-spec is_blocked(Person :: person()) -> boolean(). +is_blocked(Person) -> + Person#person.is_blocked. + -spec weird_field1(Person :: person()) -> weird_field(). weird_field1(Person) -> Person#person.weird_field1. diff --git a/src/sumo.erl b/src/sumo.erl index c2f386f..010ca96 100644 --- a/src/sumo.erl +++ b/src/sumo.erl @@ -58,7 +58,7 @@ -type field_attrs() :: [field_attr()]. --type field_type() :: integer | float | string | binary +-type field_type() :: integer | float | string | binary | boolean | date | datetime | custom. -type field_name() :: atom(). diff --git a/test/sumo_test_people_mnesia.erl b/test/sumo_test_people_mnesia.erl index b9584e5..604c719 100644 --- a/test/sumo_test_people_mnesia.erl +++ b/test/sumo_test_people_mnesia.erl @@ -24,6 +24,7 @@ height/1, description/1, profile_image/1, + is_blocked/1, weird_field1/1, weird_field2/1, weird_field3/1 @@ -49,6 +50,7 @@ sumo_schema() -> sumo:new_field(height, float), sumo:new_field(description, string), sumo:new_field(profile_image, binary), + sumo:new_field(is_blocked, boolean), sumo:new_field(weird_field1, custom, [{type, term}]), sumo:new_field(weird_field2, custom, [{type, list}]), sumo:new_field(weird_field3, custom, [{type, map}])