49 using lumiera::error::LUMIERA_ERROR_WRONG_TYPE;
70 GenNode poodle{
"poodle",
"Pudel"};
71 GenNode toyPoodle{
"poodle",
"Zwergpudel"};
72 GenNode labradoodle {
"poodle",
false };
73 GenNode mastiff{
"mastiff",
"Dogge"};
79 CHECK (isnil (storage));
80 CHECK (0 == storage.size());
82 storage.
record (woof, poodle);
83 CHECK (not isnil(storage));
84 CHECK (1 == storage.size());
86 CHECK (poodle == storage.
retrieve(woof,
"poodle"));
87 CHECK (not isSameObject (poodle, storage.
retrieve(woof,
"poodle")));
92 storage.
record (woof, mastiff);
93 CHECK (2 == storage.size());
94 CHECK (poodle == storage.
retrieve(woof,
"poodle"));
95 CHECK (mastiff == storage.
retrieve(woof,
"mastiff"));
98 storage.
record (woof, toyPoodle);
99 CHECK (2 == storage.size());
100 CHECK (poodle != storage.
retrieve(woof,
"poodle"));
101 CHECK (toyPoodle == storage.
retrieve(woof,
"poodle"));
108 CHECK (2 == storage.size());
109 CHECK (toyPoodle == storage.
retrieve(woof,
"poodle"));
110 CHECK (mastiff == storage.
retrieve(woof,
"mastiff"));
113 storage.
record (quack, duck);
114 CHECK (3 == storage.size());
115 CHECK (toyPoodle == storage.
retrieve(woof,
"poodle"));
116 CHECK (mastiff == storage.
retrieve(woof,
"mastiff"));
117 CHECK (duck == storage.
retrieve(quack,
"duck"));
119 auto elm = storage.find(woof);
120 CHECK (elm != storage.end());
121 CHECK (woof == StateMapGroupingStorage::getID(*elm));
122 CHECK (2 == StateMapGroupingStorage::getState(*elm).size());
123 CHECK (
Ref::NO == StateMapGroupingStorage::getState(*elm,
"doodle"));
124 CHECK (toyPoodle == StateMapGroupingStorage::getState(*elm,
"poodle"));
125 CHECK (mastiff == StateMapGroupingStorage::getState(*elm,
"mastiff"));
127 elm = storage.find(miaow);
128 CHECK (elm == storage.end());
131 storage.
record (miaow, labradoodle);
132 CHECK (labradoodle == storage.
retrieve(miaow,
"poodle"));
133 CHECK (4 == storage.size());
136 CHECK (4 == storage.size());
137 CHECK (labradoodle == storage.
retrieve(miaow,
"poodle"));
141 CHECK (3 == storage.size());
145 elm = storage.find(miaow);
146 CHECK (elm != storage.end());
147 CHECK (miaow == StateMapGroupingStorage::getID(*elm));
148 CHECK (0 == StateMapGroupingStorage::getState(*elm).size());
152 CHECK (isnil (storage));
153 CHECK (0 == storage.size());
void record(BareEntryID const &elementID, GenNode const &stateMark)
remember the state mark for the denoted element
Implementation of storage for captured presentation state.
void clearProperty(BareEntryID const &elementID, string propertyKey)
clear previously recorded state for a given element and specific property
typed symbolic and hash ID for asset-like position accounting.
#define VERIFY_ERROR(ERROR_ID, ERRONEOUS_STATEMENT)
Macro to verify that a statement indeed raises an exception.
Map storage for captured presentation state information.
Simple test class runner.
Lumiera GTK UI implementation root.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
Generic building block for tree shaped (meta)data structures.
A collection of frequently used helper functions to support unit testing.
static const Ref NO
symbolic ID ref "_NO_"
GenNode const & retrieve(BareEntryID const &elementID, string propertyKey) const
retrieve captured state
Bare symbolic and hash ID used for accounting of asset like entries.
generic data element node within a tree
bool isSameObject(A const &a, B const &b)
compare plain object identity, bypassing any custom comparison operators.