WIP: dream up a conveninence interface
This commit is contained in:
parent
a0040fe6ab
commit
6ee8737a17
1 changed files with 59 additions and 5 deletions
|
|
@ -124,8 +124,8 @@ namespace test{
|
|||
run (Arg)
|
||||
{
|
||||
demonstrate_standardUsage();
|
||||
verify_diagnostics();
|
||||
verify_builder();
|
||||
verify_diagnostics();
|
||||
demonstrate_treeApplication();
|
||||
}
|
||||
|
||||
|
|
@ -226,16 +226,70 @@ namespace test{
|
|||
|
||||
|
||||
void
|
||||
verify_diagnostics()
|
||||
verify_builder()
|
||||
{
|
||||
UNIMPLEMENTED("add toString decorator");
|
||||
DiffMessage diffMsg{ins(TYPE_X)
|
||||
,set(ATTRIB1)
|
||||
,del(CHILD_T)};
|
||||
|
||||
CHECK (!isnil (diffMsg));
|
||||
CHECK (ins(TYPE_X) == *diffMsg);
|
||||
CHECK (set(ATTRIB1) == *++diffMsg);
|
||||
CHECK (del(CHILD_T) == *++diffMsg);
|
||||
CHECK (isnil (++diffMsg));
|
||||
VERIFY_ERROR(ITER_EXHAUST, *diffMsg);
|
||||
|
||||
|
||||
|
||||
// likewise works with a std::initializer_list
|
||||
diffMsg = DiffMessage{{ins(TYPE_X)
|
||||
,set(ATTRIB1)
|
||||
,del(CHILD_T)}
|
||||
};
|
||||
|
||||
CHECK (!isnil (diffMsg));
|
||||
CHECK (ins(TYPE_X) == *diffMsg);
|
||||
CHECK (set(ATTRIB1) == *++diffMsg);
|
||||
CHECK (del(CHILD_T) == *++diffMsg);
|
||||
CHECK (isnil (++diffMsg));
|
||||
|
||||
|
||||
|
||||
// even passing any suitable iterable works
|
||||
diffMsg = DiffMessage{snapshot({ins(TYPE_X)
|
||||
,set(ATTRIB1)
|
||||
,del(CHILD_T)})
|
||||
};
|
||||
|
||||
CHECK (!isnil (diffMsg));
|
||||
CHECK (ins(TYPE_X) == *diffMsg);
|
||||
CHECK (set(ATTRIB1) == *++diffMsg);
|
||||
CHECK (del(CHILD_T) == *++diffMsg);
|
||||
CHECK (isnil (++diffMsg));
|
||||
|
||||
|
||||
|
||||
// really anything iterable...
|
||||
std::vector<DiffStep> steps;
|
||||
CHECK (isnil (steps));
|
||||
append_all(snapshot({ins(TYPE_X)
|
||||
,set(ATTRIB1)
|
||||
,del(CHILD_T)}), steps);
|
||||
|
||||
diffMsg = DiffMessage{steps};
|
||||
|
||||
CHECK (!isnil (diffMsg));
|
||||
CHECK (ins(TYPE_X) == *diffMsg);
|
||||
CHECK (set(ATTRIB1) == *++diffMsg);
|
||||
CHECK (del(CHILD_T) == *++diffMsg);
|
||||
CHECK (isnil (++diffMsg));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
verify_builder()
|
||||
verify_diagnostics()
|
||||
{
|
||||
UNIMPLEMENTED("a builder function to simplify tests");
|
||||
UNIMPLEMENTED("add toString decorator");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue