Mercurial > dedupe
annotate TestMemoryDBLink.cpp @ 113:27e628852401
Add some error checking.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Tue, 03 May 2016 02:23:14 +0200 |
| parents | 9744ec195be3 |
| children |
| rev | line source |
|---|---|
|
73
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
1 #include "MemoryDBLink.hpp" |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
2 #include "Exception/ValueExistsException.hpp" |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
3 #include "TestFramework.hpp" |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
4 |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
5 BOOST_AUTO_TEST_CASE( AddUpdateDeleteFile ) |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
6 { |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
7 MemoryDBLink link; |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
8 |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
9 QDateTime time1 = QDateTime::currentDateTime(); |
|
73
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
10 QDateTime time2 = time1.addSecs(1); |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
11 |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
12 BOOST_REQUIRE(!link.exists("test")); |
|
73
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
13 BOOST_REQUIRE_EQUAL(link.existsWithMtime("test", time1), FileDBLink::NONE); |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
14 link.addFile("test", 1, time1, "a"); |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
15 BOOST_REQUIRE_EQUAL(link.existsWithMtime("test", time1), FileDBLink::SAME); |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
16 BOOST_REQUIRE(link.exists("test")); |
|
73
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
17 BOOST_REQUIRE_THROW(link.addFile("test", 1, time1, "a"), |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
18 ValueExistsException); |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
19 |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
20 link.updateFile("test", 1, time2, "a"); |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
21 BOOST_REQUIRE_EQUAL(link.existsWithMtime("test", time1), FileDBLink::MTIME_DIFFERENT); |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
22 BOOST_REQUIRE(link.exists("test")); |
|
73
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
23 BOOST_REQUIRE_THROW(link.addFile("test", 1, time1, "a"), |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
24 ValueExistsException); |
|
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
25 |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
26 |
|
73
c9447697609f
Fixed some issues with raise.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff
changeset
|
27 } |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
28 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
29 BOOST_AUTO_TEST_CASE( SortUnsortable ) |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
30 { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
31 MemoryDBLink link; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
32 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
33 QString path1 = "a"; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
34 int size1 = 1; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
35 QDateTime time1 = QDateTime::currentDateTime(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
36 QByteArray checksum1 = QByteArray::fromHex("a"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
37 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
38 QString path2 = "b"; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
39 int size2 = 2; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
40 QDateTime time2 = time1.addSecs(1); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
41 QByteArray checksum2 = QByteArray::fromHex("b"); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
42 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
43 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
44 link.addFile(path2, size2, time2, checksum2); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
45 link.addFile(path1, size1, time1, checksum1); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
46 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
47 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
48 { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
49 QList<FileDBLink::dbinf_ptr_t > out; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
50 out = link.sortOn("", FileDBLink::PATH, false); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
51 |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
52 bool first = true; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
53 QString prev; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
54 foreach(FileDBLink::dbinf_ptr_t info, out) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
55 if (first) { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
56 first = false; |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
57 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
58 else { |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
59 BOOST_REQUIRE(prev <= info->path()); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
60 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
61 prev = info->path(); |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
62 } |
|
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
63 } |
|
78
9744ec195be3
Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
76
diff
changeset
|
64 |
|
76
8136057988bc
Fixes to automatic report generating system.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
73
diff
changeset
|
65 } |
