230 QVERIFY( deserializedEvent.mIsInView == true ); |
230 QVERIFY( deserializedEvent.mIsInView == true ); |
231 QVERIFY( deserializedEvent.mEventState == LogsEvent::EventAdded ); |
231 QVERIFY( deserializedEvent.mEventState == LogsEvent::EventAdded ); |
232 QVERIFY( deserializedEvent.mIsLocallySeen == true ); |
232 QVERIFY( deserializedEvent.mIsLocallySeen == true ); |
233 QVERIFY( deserializedEvent.mIsPrivate == false ); |
233 QVERIFY( deserializedEvent.mIsPrivate == false ); |
234 QVERIFY( deserializedEvent.mIsUnknown == false ); |
234 QVERIFY( deserializedEvent.mIsUnknown == false ); |
|
235 QVERIFY( deserializedEvent.mMergedDuplicates.count() == 0 ); |
235 |
236 |
236 // Serialize/deserialize, event data exists |
237 // Serialize/deserialize, event data exists |
237 event.mLogsEventData = new LogsEventData(); |
238 event.mLogsEventData = new LogsEventData(); |
238 |
239 |
239 QByteArray serializedEvent2; |
240 QByteArray serializedEvent2; |
240 QDataStream stream2(&serializedEvent2, QIODevice::WriteOnly | QIODevice::Append); |
241 QDataStream stream2(&serializedEvent2, QIODevice::WriteOnly | QIODevice::Append); |
|
242 LogsEvent merge1; |
|
243 merge1.setLogId(33); |
|
244 event.mMergedDuplicates.append( merge1 ); |
|
245 LogsEvent merge2; |
|
246 merge2.setLogId(34); |
|
247 event.mMergedDuplicates.append( merge2 ); |
241 event.serialize(stream2); |
248 event.serialize(stream2); |
242 QDataStream readStream2(&serializedEvent2, QIODevice::ReadOnly); |
249 QDataStream readStream2(&serializedEvent2, QIODevice::ReadOnly); |
243 LogsEvent deserializedEvent2(readStream2); |
250 LogsEvent deserializedEvent2(readStream2); |
244 QVERIFY( deserializedEvent2.mLogId == 3 ); |
251 QVERIFY( deserializedEvent2.mLogId == 3 ); |
245 QVERIFY( deserializedEvent2.mDirection == LogsEvent::DirMissed ); |
252 QVERIFY( deserializedEvent2.mDirection == LogsEvent::DirMissed ); |
257 QVERIFY( deserializedEvent2.mIsInView == true ); |
264 QVERIFY( deserializedEvent2.mIsInView == true ); |
258 QVERIFY( deserializedEvent2.mEventState == LogsEvent::EventAdded ); |
265 QVERIFY( deserializedEvent2.mEventState == LogsEvent::EventAdded ); |
259 QVERIFY( deserializedEvent2.mIsLocallySeen == true ); |
266 QVERIFY( deserializedEvent2.mIsLocallySeen == true ); |
260 QVERIFY( deserializedEvent2.mIsPrivate == false ); |
267 QVERIFY( deserializedEvent2.mIsPrivate == false ); |
261 QVERIFY( deserializedEvent2.mIsUnknown == false ); |
268 QVERIFY( deserializedEvent2.mIsUnknown == false ); |
|
269 QVERIFY( deserializedEvent2.mMergedDuplicates.count() == 2 ); |
|
270 QVERIFY( deserializedEvent2.mMergedDuplicates.at(0).logId() == 33 ); |
|
271 QVERIFY( deserializedEvent2.mMergedDuplicates.at(1).logId() == 34 ); |
262 |
272 |
263 // Incorrect stream |
273 // Incorrect stream |
264 QByteArray serializedEvent3; |
274 QByteArray serializedEvent3; |
265 QDataStream stream3(&serializedEvent3, QIODevice::ReadWrite | QIODevice::Append); |
275 QDataStream stream3(&serializedEvent3, QIODevice::ReadWrite | QIODevice::Append); |
266 LogsEvent deserializedEvent3(stream3); |
276 LogsEvent deserializedEvent3(stream3); |
280 QVERIFY( deserializedEvent3.mIsInView == false ); |
290 QVERIFY( deserializedEvent3.mIsInView == false ); |
281 QVERIFY( deserializedEvent3.mEventState == LogsEvent::EventAdded ); |
291 QVERIFY( deserializedEvent3.mEventState == LogsEvent::EventAdded ); |
282 QVERIFY( deserializedEvent3.mIsLocallySeen == false ); |
292 QVERIFY( deserializedEvent3.mIsLocallySeen == false ); |
283 QVERIFY( deserializedEvent3.mIsPrivate == false ); |
293 QVERIFY( deserializedEvent3.mIsPrivate == false ); |
284 QVERIFY( deserializedEvent3.mIsUnknown == false ); |
294 QVERIFY( deserializedEvent3.mIsUnknown == false ); |
285 } |
295 QVERIFY( deserializedEvent3.mMergedDuplicates.count() == 0 ); |
286 |
296 } |
|
297 |
|
298 void UT_LogsEvent::testMerge() |
|
299 { |
|
300 LogsEvent ev; |
|
301 ev.setDirection(LogsEvent::DirOut); |
|
302 ev.setLogId(5); |
|
303 LogsEvent mergedEv; |
|
304 mergedEv.setDirection(LogsEvent::DirOut); |
|
305 mergedEv.setLogId(10); |
|
306 ev.merge(mergedEv); |
|
307 QCOMPARE( ev.mMergedDuplicates.count(), 1 ); |
|
308 QCOMPARE( ev.mMergedDuplicates.at(0).logId(), 10 ); |
|
309 |
|
310 // Adding again has no effect |
|
311 ev.merge(mergedEv); |
|
312 QCOMPARE( ev.mMergedDuplicates.count(), 1 ); |
|
313 QCOMPARE( ev.mMergedDuplicates.at(0).logId(), 10 ); |
|
314 |
|
315 // Merging unseen missed events |
|
316 ev.mMergedDuplicates.clear(); |
|
317 ev.setDirection(LogsEvent::DirMissed); |
|
318 ev.setDuplicates(2); |
|
319 mergedEv.setDirection(LogsEvent::DirMissed); |
|
320 mergedEv.setDuplicates(0); |
|
321 ev.merge(mergedEv); |
|
322 QCOMPARE( ev.mMergedDuplicates.count(), 1 ); |
|
323 QCOMPARE( ev.mMergedDuplicates.at(0).logId(), 10 ); |
|
324 QCOMPARE( ev.duplicates(), 3 ); |
|
325 |
|
326 // Simulate second reading round |
|
327 ev.setDuplicates(2); |
|
328 ev.merge(mergedEv); |
|
329 QCOMPARE( ev.duplicates(), 3 ); |
|
330 |
|
331 // Merging seen events does not cause duplicate increase |
|
332 ev.markedAsSeenLocally(true); |
|
333 ev.setDuplicates(0); |
|
334 ev.merge(mergedEv); |
|
335 QCOMPARE( ev.mMergedDuplicates.count(), 1 ); |
|
336 QCOMPARE( ev.mMergedDuplicates.at(0).logId(), 10 ); |
|
337 QCOMPARE( ev.duplicates(), 0 ); |
|
338 } |
|
339 |