All IG code should use the interface of LocatedEntity when dealing
with any entity, rather than sometimes requiring Entity. Add virtual
functions to the interface where required, and modify all other interfaces
to stop them using Entity. This makes the code way cleaner, and much better
de-coupled.
The Link reference provided is the object allowing direct communication
back to the external source of the operation. This allows us to handle
things more cleanly in some cases.
* common/Database.cpp: Replace asserts with critical error messages,
so tests can run without a Database connection.
* tests/EntityPropertytest.cpp: Re-write test cases to deal with
modified behavoir if the Entity reference is null.
* tests/EntityPropertytest.cpp: Add a complete set of unit tests for
EntityProperty.
* rulesets/EntityProperty.cpp: Fix and instrument the code based
on the findings from the unit test.