summaryrefslogtreecommitdiff
path: root/server/tests/table_test.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2023-01-02 16:57:00 -0500
committerKjetil Orbekk <kj@orbekk.com>2023-01-02 16:57:00 -0500
commit0f7dacea15d6e22123c3290c52515a772fc7ee92 (patch)
tree75af47d988e6b4dca4466898bb73cc0bc30fc171 /server/tests/table_test.rs
parent29dc8af0d9e01274eb1c520ea174e8a16f316562 (diff)
Switch Table trait to use generics
Diffstat (limited to 'server/tests/table_test.rs')
-rw-r--r--server/tests/table_test.rs37
1 files changed, 22 insertions, 15 deletions
diff --git a/server/tests/table_test.rs b/server/tests/table_test.rs
index 87547c3..1db7aa8 100644
--- a/server/tests/table_test.rs
+++ b/server/tests/table_test.rs
@@ -8,9 +8,10 @@ use uuid::Uuid;
mod common;
-async fn table_basic_test(
- mut table: Box<dyn Table + Send>,
-) -> Result<(), anyhow::Error> {
+async fn table_basic_test<T>(mut table: Box<T>) -> Result<(), anyhow::Error>
+where
+ T: Table + Send,
+{
assert!(matches!(table.state(), TableState::Unknown));
table = table.new_deal().await?;
assert!(matches!(table.state(), TableState::Game(_)));
@@ -24,13 +25,14 @@ async fn table_basic_test(
Ok(())
}
-async fn advance_table(
- table: Box<dyn Table + Send>,
-) -> Result<Box<dyn Table + Send>, BridgeError> {
+async fn advance_table<T>(table: Box<T>) -> Result<Box<T>, BridgeError>
+where
+ T: Table + Send,
+{
match table.state() {
TableState::Unknown => panic!("unexpected state"),
- TableState::Game(g) => server::table::advance_play(table).await,
- TableState::Result(g) => table.new_deal().await,
+ TableState::Game(_) => server::table::advance_play(table).await,
+ TableState::Result(_) => table.new_deal().await,
}
}
@@ -47,7 +49,8 @@ async fn in_memory_table() -> Result<(), anyhow::Error> {
async fn db_table() -> Result<(), anyhow::Error> {
let db = common::TestDb::new().await;
table_basic_test(Box::new(
- DbTable::new(db.db().clone(), Uuid::new_v4()).await?,
+ DbTable::new(db.db().clone(), Uuid::new_v4(), InMemoryTable::new())
+ .await?,
))
.await?;
Ok(())
@@ -62,10 +65,12 @@ async fn db_table() -> Result<(), anyhow::Error> {
async fn db_table_idempotent() -> Result<(), anyhow::Error> {
let db = common::TestDb::new().await;
let uuid = Uuid::new_v4();
- let table1: Box<dyn Table + Send> =
- Box::new(DbTable::new(db.db().clone(), uuid).await?);
- let table2: Box<dyn Table + Send> =
- Box::new(DbTable::new(db.db().clone(), uuid).await?);
+ let table1 = Box::new(
+ DbTable::new(db.db().clone(), uuid, InMemoryTable::new()).await?,
+ );
+ let table2 = Box::new(
+ DbTable::new(db.db().clone(), uuid, InMemoryTable::new()).await?,
+ );
assert_eq!(table1.state(), table2.state());
Ok(())
}
@@ -74,8 +79,10 @@ async fn db_table_idempotent() -> Result<(), anyhow::Error> {
#[ignore]
async fn db_table_persistence() -> Result<(), anyhow::Error> {
let db = common::TestDb::new().await;
- let mut table: Box<dyn Table + Send> =
- Box::new(DbTable::new(db.db().clone(), Uuid::new_v4()).await?);
+ let mut table = Box::new(
+ DbTable::new(db.db().clone(), Uuid::new_v4(), InMemoryTable::new())
+ .await?,
+ );
table = table.new_deal().await?;
for i in 0..(thread_rng().gen_range(0..200)) {
table = advance_table(table).await?;