Skip to main content

coven_database/store/store_session/test_support/
device_exclusion.rs

1use super::*;
2
3impl StoreDatabase {
4    pub async fn sole_author_exclusion_activation_evidence_for_test(
5        &self,
6    ) -> Result<(String, String, String, String), DbError> {
7        self.call_store(|session| session.sole_author_exclusion_activation_evidence_for_test())
8            .await
9    }
10
11    pub async fn author_exclusion_activation_evidence_for_test(
12        &self,
13        exclusion: &StoreDeviceExclusionRef,
14    ) -> Result<(String, String), DbError> {
15        let exclusion = serde_json::to_string(exclusion)
16            .map_err(|error| DbError::context("serialize exclusion ref", error))?;
17        self.call_store(move |session| {
18            session.author_exclusion_activation_evidence_for_test(&exclusion)
19        })
20        .await
21    }
22
23    pub async fn latest_local_write_facts_for_test(&self) -> Result<(String, i64, i64), DbError> {
24        self.call_store(|session| session.latest_local_write_facts_for_test())
25            .await
26    }
27
28    pub async fn install_retracted_device_state_failure_trigger_for_test(
29        &self,
30    ) -> Result<(), DbError> {
31        self.call_store(|session| session.install_retracted_device_state_failure_trigger_for_test())
32            .await
33    }
34
35    pub async fn prepared_write_count_for_test(&self, write_id: WriteId) -> Result<i64, DbError> {
36        self.call_store(move |session| session.prepared_write_count_for_test(&write_id))
37            .await
38    }
39
40    pub async fn begin_remote_candidate_nonactivation_for_test(
41        &self,
42        object_id: coven_protocol::store_commit::ObjectHash,
43        nonactivation: coven_protocol::remote_object::CandidateNonactivation,
44    ) -> Result<(), DbError> {
45        self.call_store(move |session| {
46            session.begin_remote_candidate_nonactivation_for_test(object_id, nonactivation)
47        })
48        .await
49    }
50
51    pub async fn install_indexed_shared_blobs_for_test(
52        &self,
53        write_id: WriteId,
54        records: Vec<coven_protocol::remote_object::RemoteObjectRecord>,
55    ) -> Result<(), DbError> {
56        self.call_store(move |session| {
57            session.install_indexed_shared_blobs_for_test(&write_id, records)
58        })
59        .await
60    }
61
62    pub async fn tamper_author_exclusion_locator_for_test(
63        &self,
64        exclusion: &StoreDeviceExclusionRef,
65        candidate: &StoreBatchCommitRef,
66        tamper: AuthorExclusionLocatorTamper,
67    ) -> Result<(), DbError> {
68        let exclusion = exclusion.clone();
69        let candidate = candidate.clone();
70        self.call_store(move |session| {
71            session.tamper_author_exclusion_locator_for_test(exclusion, &candidate, tamper)
72        })
73        .await
74    }
75}