comparison UnitTests/FileStorage.cpp @ 233:c11273198cef

rename
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 30 Nov 2012 14:30:05 +0100
parents 5368bbe813cf
children 7c1faef915a4
comparison
equal deleted inserted replaced
232:5368bbe813cf 233:c11273198cef
64 { 64 {
65 FileStorage s("FileStorageUnitTests"); 65 FileStorage s("FileStorageUnitTests");
66 FileStorageAccessor accessor(s); 66 FileStorageAccessor accessor(s);
67 67
68 std::string data = "Hello world"; 68 std::string data = "Hello world";
69 FileInfo info = accessor.Write(data, FileType_Dicom); 69 FileInfo info = accessor.Write(data, FileContentType_Dicom);
70 70
71 std::string r; 71 std::string r;
72 accessor.Read(r, info.GetUuid()); 72 accessor.Read(r, info.GetUuid());
73 73
74 ASSERT_EQ(data, r); 74 ASSERT_EQ(data, r);
75 ASSERT_EQ(CompressionType_None, info.GetCompressionType()); 75 ASSERT_EQ(CompressionType_None, info.GetCompressionType());
76 ASSERT_EQ(11u, info.GetUncompressedSize()); 76 ASSERT_EQ(11u, info.GetUncompressedSize());
77 ASSERT_EQ(11u, info.GetCompressedSize()); 77 ASSERT_EQ(11u, info.GetCompressedSize());
78 ASSERT_EQ(FileType_Dicom, info.GetFileType()); 78 ASSERT_EQ(FileContentType_Dicom, info.GetContentType());
79 } 79 }
80 80
81 81
82 TEST(FileStorageAccessor, NoCompression) 82 TEST(FileStorageAccessor, NoCompression)
83 { 83 {
84 FileStorage s("FileStorageUnitTests"); 84 FileStorage s("FileStorageUnitTests");
85 CompressedFileStorageAccessor accessor(s); 85 CompressedFileStorageAccessor accessor(s);
86 86
87 accessor.SetCompressionForNextOperations(CompressionType_None); 87 accessor.SetCompressionForNextOperations(CompressionType_None);
88 std::string data = "Hello world"; 88 std::string data = "Hello world";
89 FileInfo info = accessor.Write(data, FileType_Dicom); 89 FileInfo info = accessor.Write(data, FileContentType_Dicom);
90 90
91 std::string r; 91 std::string r;
92 accessor.Read(r, info.GetUuid()); 92 accessor.Read(r, info.GetUuid());
93 93
94 ASSERT_EQ(data, r); 94 ASSERT_EQ(data, r);
95 ASSERT_EQ(CompressionType_None, info.GetCompressionType()); 95 ASSERT_EQ(CompressionType_None, info.GetCompressionType());
96 ASSERT_EQ(11u, info.GetUncompressedSize()); 96 ASSERT_EQ(11u, info.GetUncompressedSize());
97 ASSERT_EQ(11u, info.GetCompressedSize()); 97 ASSERT_EQ(11u, info.GetCompressedSize());
98 ASSERT_EQ(FileType_Dicom, info.GetFileType()); 98 ASSERT_EQ(FileContentType_Dicom, info.GetContentType());
99 } 99 }
100 100
101 101
102 TEST(FileStorageAccessor, Compression) 102 TEST(FileStorageAccessor, Compression)
103 { 103 {
104 FileStorage s("FileStorageUnitTests"); 104 FileStorage s("FileStorageUnitTests");
105 CompressedFileStorageAccessor accessor(s); 105 CompressedFileStorageAccessor accessor(s);
106 106
107 accessor.SetCompressionForNextOperations(CompressionType_Zlib); 107 accessor.SetCompressionForNextOperations(CompressionType_Zlib);
108 std::string data = "Hello world"; 108 std::string data = "Hello world";
109 FileInfo info = accessor.Write(data, FileType_Dicom); 109 FileInfo info = accessor.Write(data, FileContentType_Dicom);
110 110
111 std::string r; 111 std::string r;
112 accessor.Read(r, info.GetUuid()); 112 accessor.Read(r, info.GetUuid());
113 113
114 ASSERT_EQ(data, r); 114 ASSERT_EQ(data, r);
115 ASSERT_EQ(CompressionType_Zlib, info.GetCompressionType()); 115 ASSERT_EQ(CompressionType_Zlib, info.GetCompressionType());
116 ASSERT_EQ(11u, info.GetUncompressedSize()); 116 ASSERT_EQ(11u, info.GetUncompressedSize());
117 ASSERT_EQ(FileType_Dicom, info.GetFileType()); 117 ASSERT_EQ(FileContentType_Dicom, info.GetContentType());
118 } 118 }
119 119
120 120
121 TEST(FileStorageAccessor, Mix) 121 TEST(FileStorageAccessor, Mix)
122 { 122 {
126 std::string r; 126 std::string r;
127 std::string compressedData = "Hello"; 127 std::string compressedData = "Hello";
128 std::string uncompressedData = "HelloWorld"; 128 std::string uncompressedData = "HelloWorld";
129 129
130 accessor.SetCompressionForNextOperations(CompressionType_Zlib); 130 accessor.SetCompressionForNextOperations(CompressionType_Zlib);
131 FileInfo compressedInfo = accessor.Write(compressedData, FileType_Dicom); 131 FileInfo compressedInfo = accessor.Write(compressedData, FileContentType_Dicom);
132 132
133 accessor.SetCompressionForNextOperations(CompressionType_None); 133 accessor.SetCompressionForNextOperations(CompressionType_None);
134 FileInfo uncompressedInfo = accessor.Write(uncompressedData, FileType_Dicom); 134 FileInfo uncompressedInfo = accessor.Write(uncompressedData, FileContentType_Dicom);
135 135
136 accessor.SetCompressionForNextOperations(CompressionType_Zlib); 136 accessor.SetCompressionForNextOperations(CompressionType_Zlib);
137 accessor.Read(r, compressedInfo.GetUuid()); 137 accessor.Read(r, compressedInfo.GetUuid());
138 ASSERT_EQ(compressedData, r); 138 ASSERT_EQ(compressedData, r);
139 139
145 // This test is too slow on Windows 145 // This test is too slow on Windows
146 accessor.SetCompressionForNextOperations(CompressionType_Zlib); 146 accessor.SetCompressionForNextOperations(CompressionType_Zlib);
147 ASSERT_THROW(accessor.Read(r, uncompressedInfo.GetUuid()), OrthancException); 147 ASSERT_THROW(accessor.Read(r, uncompressedInfo.GetUuid()), OrthancException);
148 */ 148 */
149 } 149 }
150
151
152
153 #if 0
154 // TODO REMOVE THIS STUFF
155 namespace Orthanc
156 {
157 class ServerStorageAccessor : public StorageAccessor
158 {
159 private:
160 CompressedFileStorageAccessor composite_;
161 ServerIndex& index_;
162 AttachedFileType contentType_;
163
164 protected:
165 virtual std::string WriteInternal(const void* data,
166 size_t size)
167 {
168 switch (contentType_)
169 {
170 case AttachedFileType_Json:
171 composite_.SetCompressionForNextOperations(CompressionType_None);
172 break;
173
174 case AttachedFileType_Dicom:
175 // TODO GLOBAL PARAMETER
176 composite_.SetCompressionForNextOperations(CompressionType_Zlib);
177 break;
178
179 default:
180 throw OrthancException(ErrorCode_InternalError);
181 }
182
183 std::string fileUuid = composite_.Write(data, size);
184
185
186 }
187
188 public:
189 ServerStorageAccessor(FileStorage& storage,
190 ServerIndex& index) :
191 composite_(storage),
192 index_(index)
193 {
194 contentType_ = AttachedFileType_Dicom;
195 }
196
197 void SetAttachmentType(AttachedFileType type)
198 {
199 contentType_ = type;
200 }
201
202 AttachedFileType GetAttachmentType() const
203 {
204 return contentType_;
205 }
206
207 virtual void Read(std::string& content,
208 const std::string& uuid)
209 {
210 std::string fileUuid;
211 CompressionType compression;
212
213 if (index_.GetFile(fileUuid, compression, uuid, contentType_))
214 {
215 composite_.SetCompressionForNextOperations(compression);
216 composite_.Read(content, fileUuid);
217 }
218 else
219 {
220 throw OrthancException(ErrorCode_InternalError);
221 }
222 }
223
224 virtual HttpFileSender* ConstructHttpFileSender(const std::string& uuid)
225 {
226 std::string fileUuid;
227 CompressionType compression;
228
229 if (index_.GetFile(fileUuid, compression, uuid, contentType_))
230 {
231 composite_.SetCompressionForNextOperations(compression);
232 return composite_.ConstructHttpFileSender(fileUuid);
233 }
234 else
235 {
236 throw OrthancException(ErrorCode_InternalError);
237 }
238 }
239 };
240 }
241 #endif