120 typedef Dummy AutoRegisteringDummy;
124 DummyRegistry trackedDummies;
126 CHECK (0 == checksum);
127 CHECK (0 == trackedDummies.size());
129 AutoRegisteringDummy::setRegistryInstance (trackedDummies);
130 PDummy dummy1 = AutoRegisteringDummy::create();
131 PDummy dummy2 = AutoRegisteringDummy::create();
133 CHECK (2 == trackedDummies.size());
134 CHECK (dummy1 == trackedDummies[0]);
135 CHECK (dummy2 == trackedDummies[1]);
137 PDummy dummy3 = AutoRegisteringDummy::create();
138 CHECK (3 == trackedDummies.size());
139 CHECK (dummy3 == trackedDummies[2]);
141 CHECK (1+2+3 == checksum);
144 CHECK (1 + 3 == checksum);
145 CHECK (2 == trackedDummies.size());
146 CHECK (dummy1 == trackedDummies[0]);
147 CHECK (dummy3 == trackedDummies[1]);
149 CHECK (1 == dummy2.use_count());
150 CHECK (2 == dummy1.use_count());
151 CHECK (2 == dummy3.use_count());
160 CHECK (1 == trackedDummies[0].use_count());
161 CHECK (1 == trackedDummies[1].use_count());
162 CHECK (1 + 3 == checksum);
166 CHECK (0 == checksum);
180 CHECK (0 < num_timelines);
183 CHECK (specialTimeline);
184 CHECK (num_timelines + 1 == sess->
timelines.size());
185 CHECK (specialTimeline == sess->
timelines[num_timelines]);
186 CHECK (specialTimeline.use_count() == 3);
189 CHECK (num_timelines + 2 == sess->
timelines.size());
190 CHECK (specialTimeline == sess->
timelines[num_timelines]);
191 CHECK (anotherTimeline == sess->
timelines[num_timelines+1]);
194 CHECK (assetM.
known (specialTimeline->getID()));
195 assetM.
remove (specialTimeline->getID());
196 CHECK (!assetM.
known (specialTimeline->getID()));
198 CHECK (num_timelines + 1 == sess->
timelines.size());
199 CHECK (anotherTimeline == sess->
timelines[num_timelines]);
200 CHECK (specialTimeline.use_count() == 1);
211 CHECK (1 < aTimeline_in_session.use_count(),
"test object should still be attached to session");
213 CHECK (1 == aTimeline_in_session.use_count(),
"session reset should have de-registered the test object");
Steam-Layer Interface: Asset Lookup and Organisation.
Helper mixin template for implementing a type intended to participate in automatic element tracking.
Registry for tracking object instances.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Generic interface to express a query for specifically typed result elements exposing some capabilitie...
Facade for the Asset subsystem.
static lib::Depend< AssetManager > instance
get at the system-wide asset manager instance.
void remove(IDA id)
remove the given asset from the internal DB.
static StructFactory retrieve
storage for the static StructFactory instance
TimelineAccess timelines
collection of timelines (top level)
static session::SessManager & current
access point to the current Session
creation, access and Session lifecycle Interface.
virtual void reset()=0
reset all session config and start with a pristine default session.
void verify_integration()
void verify_trackingMechanism()
void verify_cleanup(PTimeline const &aTimeline_in_session)
Tracking instances automatically on creation and disposal.
Namespace of Session and user visible high-level objects.
bool operator==(LocatingPin const &pin1, LocatingPin const &pin2)
check for equivalent definition of a complete locating chain
TestPlacement< DummyMO > PDummy
Steam-Layer implementation namespace root.
Test runner and basic definitions for tests.
bool isSameObject(A const &a, B const &b)
compare plain object identity, based directly on the referee's memory identities.
Customised refcounting smart pointer.
Basic and generic representation of an internal query.
Simplistic test class runner.
#define LAUNCHER(_TEST_CLASS_, _GROUPS_)
Structural building block of the session: a sequence of clips.
Primary Interface to the current Session.
Test Dummy: to be created through the inherited static create(), managed by smart-ptr.
Top level structural element within the session.