blob: 33d890fba135fdf769641110f8dc5bac0d1d6a5f [file] [log] [blame]
-module(recon_rec_SUITE).
-include_lib("common_test/include/ct.hrl").
-compile(export_all).
%%%%%%%%%% SETUP
all() -> [record_defs, lists_and_limits].
init_per_testcase(_, Config) ->
Res = recon_rec:import(records1),
[{imported, records1, another, 3}, {imported, records1, state, 3}] = lists:sort(Res),
Config.
end_per_testcase(_, Config) ->
recon_rec:clear(),
Config.
%%%%%%%%%% TESTS
record_defs(_Config) ->
has_record(state, 3), % make sure table was not wiped out
has_record(another, 3),
ImportRes = recon_rec:import(records2), %% one record is a duplicate
[{imported,records2,another,4}, {ignored,records2,state,3,records1}] = lists:sort(ImportRes),
has_record(state, 3),
has_record(another, 3),
has_record(another, 4),
[Res] = recon_rec:lookup_record(state, 3),
check_first_field(aaa, Res),
recon_rec:clear(records1),
no_record(state, 3),
no_record(another, 3),
has_record(another, 4),
ImportRes2 = recon_rec:import(records2),
[{imported,records2,state,3}, {overwritten,records2,another,4}] = lists:sort(ImportRes2),
[Res1] = recon_rec:lookup_record(state, 3),
check_first_field(one, Res1),
recon_rec:clear(),
no_record(state, 3),
no_record(another, 3),
no_record(another, 4),
ok.
lists_and_limits(_Config) ->
recon_rec:import(records1),
recon_rec:import(records2),
List = recon_rec:get_list(),
[{records1,another,[ddd,eee,fff],none},
{records1,state,[aaa,bbb,ccc],none},
{records2,another,[one,two,three,four],none}] = List,
recon_rec:limit(another, 3, ddd),
{records1,another,[ddd,eee,fff], ddd} = hd(recon_rec:get_list()),
recon_rec:limit(another, 3, [ddd, eee]),
{records1,another,[ddd,eee,fff], [ddd, eee]} = hd(recon_rec:get_list()),
recon_rec:limit(another, 3, all),
{records1,another,[ddd,eee,fff], all} = hd(recon_rec:get_list()),
recon_rec:clear(records2),
{error, record_unknown} = recon_rec:limit(another, 4, none),
ok.
%%%%%%%%%% HELPERS
has_record(Name, Count) ->
[_] = recon_rec:lookup_record(Name, Count).
no_record(Name, Count) ->
[] = recon_rec:lookup_record(Name, Count).
check_first_field(F, Rec) ->
{_, Fields, _, _} = Rec,
F = hd(Fields).