summaryrefslogtreecommitdiffstats
path: root/src/test_helpers/testers/searchable.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test_helpers/testers/searchable.rs')
-rw-r--r--src/test_helpers/testers/searchable.rs27
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)
+ }
+}