Mercurial > hg > orthanc
comparison UnitTests/FileStorage.cpp @ 222:bd934af46ba4
unit test of storagearea in separate file
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Nov 2012 18:03:37 +0100 |
parents | |
children | 6f0e4a8ebb0f |
comparison
equal
deleted
inserted
replaced
221:e7432706b354 | 222:bd934af46ba4 |
---|---|
1 #include "gtest/gtest.h" | |
2 | |
3 #include <ctype.h> | |
4 #include <glog/logging.h> | |
5 | |
6 #include "../Core/FileStorage.h" | |
7 #include "../Core/Toolbox.h" | |
8 #include "../Core/OrthancException.h" | |
9 #include "../Core/Uuid.h" | |
10 #include "../Core/HttpServer/FilesystemHttpSender.h" | |
11 #include "../Core/HttpServer/BufferHttpSender.h" | |
12 #include "../Core/FileStorage/FileStorageAccessor.h" | |
13 #include "../Core/FileStorage/CompressedFileStorageAccessor.h" | |
14 | |
15 using namespace Orthanc; | |
16 | |
17 TEST(FileStorage, Basic) | |
18 { | |
19 FileStorage s("FileStorageUnitTests"); | |
20 | |
21 std::string data = Toolbox::GenerateUuid(); | |
22 std::string uid = s.Create(data); | |
23 std::string d; | |
24 s.ReadFile(d, uid); | |
25 ASSERT_EQ(d.size(), data.size()); | |
26 ASSERT_FALSE(memcmp(&d[0], &data[0], data.size())); | |
27 } | |
28 | |
29 TEST(FileStorage, EndToEnd) | |
30 { | |
31 FileStorage s("FileStorageUnitTests"); | |
32 s.Clear(); | |
33 | |
34 std::list<std::string> u; | |
35 for (unsigned int i = 0; i < 10; i++) | |
36 { | |
37 u.push_back(s.Create(Toolbox::GenerateUuid())); | |
38 } | |
39 | |
40 std::set<std::string> ss; | |
41 s.ListAllFiles(ss); | |
42 ASSERT_EQ(10u, ss.size()); | |
43 | |
44 unsigned int c = 0; | |
45 for (std::list<std::string>::iterator | |
46 i = u.begin(); i != u.end(); i++, c++) | |
47 { | |
48 ASSERT_TRUE(ss.find(*i) != ss.end()); | |
49 if (c < 5) | |
50 s.Remove(*i); | |
51 } | |
52 | |
53 s.ListAllFiles(ss); | |
54 ASSERT_EQ(5u, ss.size()); | |
55 | |
56 s.Clear(); | |
57 s.ListAllFiles(ss); | |
58 ASSERT_EQ(0u, ss.size()); | |
59 } | |
60 | |
61 | |
62 TEST(FileStorageAccessor, Simple) | |
63 { | |
64 FileStorage s("FileStorageUnitTests"); | |
65 FileStorageAccessor accessor(s); | |
66 | |
67 std::string data = "Hello world"; | |
68 std::string id = accessor.Write(data); | |
69 | |
70 std::string r; | |
71 accessor.Read(r, id); | |
72 | |
73 ASSERT_EQ(data, r); | |
74 } | |
75 | |
76 | |
77 TEST(FileStorageAccessor, NoCompression) | |
78 { | |
79 FileStorage s("FileStorageUnitTests"); | |
80 CompressedFileStorageAccessor accessor(s); | |
81 | |
82 accessor.SetCompressionForNextOperations(CompressionType_None); | |
83 std::string data = "Hello world"; | |
84 std::string id = accessor.Write(data); | |
85 | |
86 std::string r; | |
87 accessor.Read(r, id); | |
88 | |
89 ASSERT_EQ(data, r); | |
90 } | |
91 | |
92 | |
93 TEST(FileStorageAccessor, Compression) | |
94 { | |
95 FileStorage s("FileStorageUnitTests"); | |
96 CompressedFileStorageAccessor accessor(s); | |
97 | |
98 accessor.SetCompressionForNextOperations(CompressionType_Zlib); | |
99 std::string data = "Hello world"; | |
100 std::string id = accessor.Write(data); | |
101 | |
102 std::string r; | |
103 accessor.Read(r, id); | |
104 | |
105 ASSERT_EQ(data, r); | |
106 } | |
107 | |
108 | |
109 TEST(FileStorageAccessor, Mix) | |
110 { | |
111 FileStorage s("FileStorageUnitTests"); | |
112 CompressedFileStorageAccessor accessor(s); | |
113 | |
114 std::string r; | |
115 std::string compressedData = "Hello"; | |
116 std::string uncompressedData = "HelloWorld"; | |
117 | |
118 accessor.SetCompressionForNextOperations(CompressionType_Zlib); | |
119 std::string compressedId = accessor.Write(compressedData); | |
120 | |
121 accessor.SetCompressionForNextOperations(CompressionType_None); | |
122 std::string uncompressedId = accessor.Write(uncompressedData); | |
123 | |
124 accessor.SetCompressionForNextOperations(CompressionType_Zlib); | |
125 accessor.Read(r, compressedId); | |
126 ASSERT_EQ(compressedData, r); | |
127 | |
128 accessor.SetCompressionForNextOperations(CompressionType_None); | |
129 accessor.Read(r, compressedId); | |
130 ASSERT_NE(compressedData, r); | |
131 | |
132 accessor.SetCompressionForNextOperations(CompressionType_Zlib); | |
133 ASSERT_THROW(accessor.Read(r, uncompressedId), OrthancException); | |
134 } |