29 void cleanupTestCase();
32 void testModelAttachment();
33 void testModelDetachment();
34 void testIsModelAttached();
35 void testGetObservedModel();
36 void testEnsureModelDetached();
40 void testBeforeAndAfterUpdate();
41 void testChangeSetFiltering();
42 void testSetObservedIds();
45 void testMultipleAttachDetachCycles();
46 void testDetachNullModel();
50 class TestDataModel:
public iser::CSerializableBase
55 CF_DATA_CHANGED = 0x1,
56 CF_STATUS_CHANGED = 0x2
59 TestDataModel() : m_data(0), m_status(0) {}
61 void SetData(
int data)
66 changeSet.Set(CF_DATA_CHANGED);
67 BeginChanges(changeSet);
69 EndChanges(changeSet);
73 int GetData()
const {
return m_data; }
75 void SetStatus(
int status)
77 if (m_status != status)
80 changeSet.Set(CF_STATUS_CHANGED);
81 BeginChanges(changeSet);
83 EndChanges(changeSet);
87 int GetStatus()
const {
return m_status; }
90 virtual int GetSupportedOperations()
const override
98 TestDataModel* clone =
new TestDataModel();
99 clone->m_data = m_data;
100 clone->m_status = m_status;
107 const TestDataModel* other =
dynamic_cast<const TestDataModel*
>(&object);
110 m_data = other->m_data;
111 m_status = other->m_status;
126 archive.SerializeValue(
"data", m_data);
127 archive.SerializeValue(
"status", m_status);
140 TestObserver() : m_updateCount(0), m_beforeUpdateCount(0) {}
142 int GetUpdateCount()
const {
return m_updateCount; }
143 int GetBeforeUpdateCount()
const {
return m_beforeUpdateCount; }
149 m_beforeUpdateCount = 0;
150 m_lastChangeSet.Clear();
154 virtual void BeforeUpdate(
imod::IModel* modelPtr)
override
156 CSingleModelObserverBase::BeforeUpdate(modelPtr);
157 m_beforeUpdateCount++;
163 m_lastChangeSet = changeSet;
168 int m_beforeUpdateCount;
175 TestObserver* m_observer;