@@ -22,7 +22,7 @@ use crate::feedback::FeedbackSender;
22
22
#[ cfg( feature = "fs" ) ]
23
23
use crate :: file_downloader:: FileDownloader ;
24
24
#[ cfg( feature = "fs" ) ]
25
- use crate :: utils:: AncillaryVerifier ;
25
+ use crate :: utils:: { AncillaryVerifier , TempDirectoryProvider } ;
26
26
use crate :: { CardanoDatabaseSnapshot , CardanoDatabaseSnapshotListItem , MithrilResult } ;
27
27
28
28
use super :: fetch:: InternalArtifactRetriever ;
@@ -50,6 +50,7 @@ impl CardanoDatabaseClient {
50
50
#[ cfg( feature = "fs" ) ] http_file_downloader : Arc < dyn FileDownloader > ,
51
51
#[ cfg( feature = "fs" ) ] ancillary_verifier : Option < Arc < AncillaryVerifier > > ,
52
52
#[ cfg( feature = "fs" ) ] feedback_sender : FeedbackSender ,
53
+ #[ cfg( feature = "fs" ) ] temp_directory_provider : Arc < dyn TempDirectoryProvider > ,
53
54
#[ cfg( feature = "fs" ) ] logger : Logger ,
54
55
) -> Self {
55
56
#[ cfg( feature = "fs" ) ]
@@ -67,6 +68,7 @@ impl CardanoDatabaseClient {
67
68
#[ cfg( feature = "fs" ) ]
68
69
artifact_prover : InternalArtifactProver :: new (
69
70
http_file_downloader. clone ( ) ,
71
+ temp_directory_provider. clone ( ) ,
70
72
logger. clone ( ) ,
71
73
) ,
72
74
statistics_sender : InternalStatisticsSender :: new ( aggregator_client. clone ( ) ) ,
@@ -172,6 +174,8 @@ pub(crate) mod test_dependency_injector {
172
174
#[ cfg( feature = "fs" ) ]
173
175
use crate :: file_downloader:: { FileDownloader , MockFileDownloaderBuilder } ;
174
176
#[ cfg( feature = "fs" ) ]
177
+ use crate :: utils:: TimestampTempDirectoryProvider ;
178
+ #[ cfg( feature = "fs" ) ]
175
179
use crate :: { feedback:: FeedbackReceiver , test_utils:: TestLogger } ;
176
180
177
181
/// Dependency injector for `CardanoDatabaseClient` for testing purposes.
@@ -184,6 +188,8 @@ pub(crate) mod test_dependency_injector {
184
188
#[ cfg( feature = "fs" ) ]
185
189
feedback_receivers : Vec < Arc < dyn FeedbackReceiver > > ,
186
190
#[ cfg( feature = "fs" ) ]
191
+ temp_directory_provider : Arc < dyn TempDirectoryProvider > ,
192
+ #[ cfg( feature = "fs" ) ]
187
193
logger : Logger ,
188
194
}
189
195
@@ -204,6 +210,10 @@ pub(crate) mod test_dependency_injector {
204
210
#[ cfg( feature = "fs" ) ]
205
211
feedback_receivers : vec ! [ ] ,
206
212
#[ cfg( feature = "fs" ) ]
213
+ temp_directory_provider : Arc :: new ( TimestampTempDirectoryProvider :: new (
214
+ "cardano_database_client_test" ,
215
+ ) ) ,
216
+ #[ cfg( feature = "fs" ) ]
207
217
logger : TestLogger :: stdout ( ) ,
208
218
}
209
219
}
@@ -259,13 +269,25 @@ pub(crate) mod test_dependency_injector {
259
269
}
260
270
}
261
271
272
+ #[ cfg( feature = "fs" ) ]
273
+ pub ( crate ) fn with_temp_directory_provider (
274
+ self ,
275
+ temp_directory_provider : Arc < dyn TempDirectoryProvider > ,
276
+ ) -> Self {
277
+ Self {
278
+ temp_directory_provider,
279
+ ..self
280
+ }
281
+ }
282
+
262
283
#[ cfg( feature = "fs" ) ]
263
284
pub ( crate ) fn build_cardano_database_client ( self ) -> CardanoDatabaseClient {
264
285
CardanoDatabaseClient :: new (
265
286
Arc :: new ( self . aggregator_client ) ,
266
287
self . http_file_downloader ,
267
288
self . ancillary_verifier ,
268
289
FeedbackSender :: new ( & self . feedback_receivers ) ,
290
+ self . temp_directory_provider ,
269
291
self . logger ,
270
292
)
271
293
}
0 commit comments