@@ -161,3 +161,59 @@ impl MetaDb {
161
161
} )
162
162
}
163
163
}
164
+
165
+ #[ cfg( test) ]
166
+ mod test {
167
+ use super :: * ;
168
+ const DATA : [ u8 ; 4 ] = [ 0xDE , 0xAD , 0xBE , 0xEF ] ;
169
+
170
+ fn create_db ( ) -> Result < MetaDb > {
171
+ const META_TESTDIR : & str = "./cache/test-index" ;
172
+ let path = path:: PathBuf :: from ( META_TESTDIR ) ;
173
+ MetaDb :: new ( & path)
174
+ }
175
+
176
+ #[ test]
177
+ fn create_metadb ( ) {
178
+ create_db ( ) . unwrap ( ) ;
179
+ }
180
+
181
+ #[ test]
182
+ fn db_read_write ( ) {
183
+ let db = create_db ( ) . unwrap ( ) ;
184
+ db. insert_metadata_for ( & DATA , & DATA ) . unwrap ( ) ;
185
+ let meta = db. get_metadata ( & DATA ) . unwrap ( ) ;
186
+ assert_eq ! ( meta. get_size( ) , DATA . len( ) as u64 ) ;
187
+ }
188
+
189
+ #[ test]
190
+ fn check_integrity ( ) {
191
+ let db = create_db ( ) . unwrap ( ) ;
192
+ let meta = db. insert_metadata_for ( & DATA , & DATA ) . unwrap ( ) ;
193
+ assert ! ( meta. check_integrity_of( & DATA ) ) ;
194
+ }
195
+
196
+ #[ test]
197
+ fn last_modified ( ) {
198
+ let db = create_db ( ) . unwrap ( ) ;
199
+ let meta = db. insert_metadata_for ( & DATA , & DATA ) . unwrap ( ) ;
200
+ // make sure last-modified date is within last second
201
+ assert ! (
202
+ meta. get_last_modified( )
203
+ . unwrap( )
204
+ . elapsed( )
205
+ . unwrap( )
206
+ . as_secs( )
207
+ == 0
208
+ ) ;
209
+ }
210
+
211
+ #[ test]
212
+ fn metadata_ser_de ( ) {
213
+ let db = create_db ( ) . unwrap ( ) ;
214
+ let meta = db. insert_metadata_for ( & DATA , & DATA ) . unwrap ( ) ;
215
+ let ser_bytes = meta. serialize ( ) . unwrap ( ) ;
216
+ let de = Metadata :: deserialize ( & ser_bytes) . unwrap ( ) ;
217
+ assert_eq ! ( meta. get_integrity( ) , de. get_integrity( ) ) ;
218
+ }
219
+ }
0 commit comments