Skip to main content

rakka_persistence_tck/
lib.rs

1//! rakka-persistence-tck. akka.net: `Akka.Persistence.TCK`.
2//!
3//! Provides reusable spec functions plugin authors can call against their
4//! [`Journal`](rakka_persistence::Journal) and
5//! [`SnapshotStore`](rakka_persistence::SnapshotStore) implementations.
6//!
7//! The suite is split into [`journal_suite`] and [`snapshot_suite`] modules
8//! (plus the lightweight round-trip helpers retained for historical usage).
9
10mod journal_suite;
11mod snapshot_suite;
12
13pub use journal_suite::{
14    journal_concurrent_suite, journal_extended_suite, journal_round_trip, journal_suite, journal_tag_suite,
15};
16pub use snapshot_suite::{snapshot_round_trip, snapshot_suite};
17
18#[cfg(test)]
19mod tests {
20    use super::*;
21    use rakka_persistence::{InMemoryJournal, InMemorySnapshotStore};
22
23    #[tokio::test]
24    async fn in_memory_journal_round_trip() {
25        assert!(journal_round_trip(InMemoryJournal::new(), "tck-j").await);
26    }
27
28    #[tokio::test]
29    async fn in_memory_journal_full_suite() {
30        journal_suite(InMemoryJournal::new(), "tck-full").await;
31    }
32
33    #[tokio::test]
34    async fn in_memory_snapshot_round_trip() {
35        assert!(snapshot_round_trip(InMemorySnapshotStore::new(), "tck-s").await);
36    }
37
38    #[tokio::test]
39    async fn in_memory_snapshot_full_suite() {
40        snapshot_suite(InMemorySnapshotStore::new(), "tck-s-full").await;
41    }
42
43    #[tokio::test]
44    async fn in_memory_journal_extended_suite() {
45        journal_extended_suite(InMemoryJournal::new(), "tck-j-ext").await;
46    }
47
48    #[tokio::test]
49    async fn in_memory_journal_concurrent_suite() {
50        journal_concurrent_suite(InMemoryJournal::new(), "tck-j-conc").await;
51    }
52}