30 void cleanupTestCase();
33 void testRegisterModel();
34 void testUnregisterModel();
35 void testUnregisterAllModels();
36 void testGetObjectAt();
39 void testOnModelChanged();
40 void testMultipleModelNotifications();
41 void testRelevantFlagsFiltering();
42 void testModelIdDispatching();
45 void testRegisterSameIdTwice();
46 void testUnregisterNonExistentModel();
47 void testEmptyDispatcher();
51 class TestDataModel:
public iser::CSerializableBase
56 CF_VALUE_CHANGED = 0x1,
57 CF_STATE_CHANGED = 0x2,
58 CF_CONFIG_CHANGED = 0x4
61 TestDataModel() : m_value(0), m_state(0) {}
63 void SetValue(
int value)
68 changeSet.Set(CF_VALUE_CHANGED);
69 BeginChanges(changeSet);
71 EndChanges(changeSet);
75 int GetValue()
const {
return m_value; }
77 void SetState(
int state)
82 changeSet.Set(CF_STATE_CHANGED);
83 BeginChanges(changeSet);
85 EndChanges(changeSet);
89 int GetState()
const {
return m_state; }
91 void SetConfig(
int config)
94 changeSet.Set(CF_CONFIG_CHANGED);
95 BeginChanges(changeSet);
96 EndChanges(changeSet);
100 virtual int GetSupportedOperations()
const override
108 TestDataModel* clone =
new TestDataModel();
109 clone->m_value = m_value;
110 clone->m_state = m_state;
117 const TestDataModel* other =
dynamic_cast<const TestDataModel*
>(&object);
120 m_value = other->m_value;
121 m_state = other->m_state;
136 archive.SerializeValue(
"value", m_value);
137 archive.SerializeValue(
"state", m_state);
150 TestDispatcher() : m_notificationCount(0), m_lastModelId(-1) {}
152 int GetNotificationCount()
const {
return m_notificationCount; }
153 int GetLastModelId()
const {
return m_lastModelId; }
158 m_notificationCount = 0;
160 m_lastChangeSet.Clear();
161 m_changeHistory.clear();
170 const QVector<ChangeRecord>& GetChangeHistory()
const {
return m_changeHistory; }
176 m_notificationCount++;
177 m_lastModelId = modelId;
178 m_lastChangeSet = changeSet;
181 record.modelId = modelId;
182 record.changeSet = changeSet;
183 m_changeHistory.append(record);
187 int m_notificationCount;
190 QVector<ChangeRecord> m_changeHistory;
195 TestDispatcher* m_dispatcher;