diff options
Diffstat (limited to 'src/test_helpers/testers/searchable.rs')
-rw-r--r-- | src/test_helpers/testers/searchable.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test_helpers/testers/searchable.rs b/src/test_helpers/testers/searchable.rs new file mode 100644 index 0000000..f183b81 --- /dev/null +++ b/src/test_helpers/testers/searchable.rs @@ -0,0 +1,27 @@ +use std::time::Duration; + +use crate::search::{Interrupter, SearchResult, Searchable}; + +const SEARCH_INTERRUPT_TIME: Duration = Duration::from_secs(1); + +pub(crate) struct SearchableRunner<S: Searchable + Clone> { + searchable: S, +} + +impl<S: Searchable + Clone> SearchableRunner<S> { + pub(crate) fn new(searchable: &S) -> Self { + Self { + searchable: searchable.clone(), + } + } + + pub(crate) fn run_search(&mut self, search_term: &str) -> SearchResult { + self.searchable + .search(Interrupter::new(SEARCH_INTERRUPT_TIME), search_term) + } + + pub(crate) fn run_search_with_time(&mut self, search_term: &str, millis: u64) -> SearchResult { + self.searchable + .search(Interrupter::new(Duration::from_millis(millis)), search_term) + } +} |