diff --git a/src/entity/item/mod.rs b/src/entity/item/mod.rs index 5d75798..78eb1a3 100644 --- a/src/entity/item/mod.rs +++ b/src/entity/item/mod.rs @@ -223,6 +223,13 @@ impl InventoryItemEntity { _ => None, } } + + pub fn individual<'a>(&'a self) -> Option<&'a ItemEntity> { + match self { + InventoryItemEntity::Individual(i) => Some(i), + _ => None, + } + } } #[derive(Clone, Debug, Default)] diff --git a/src/lib.rs b/src/lib.rs index cb41223..76e1020 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,7 +3,7 @@ #![feature(inline_const)] #![feature(drain_filter)] #![feature(derive_default_enum)] - +#![feature(try_blocks)] diff --git a/src/ship/items/transaction.rs b/src/ship/items/transaction.rs index c21c868..4d426af 100644 --- a/src/ship/items/transaction.rs +++ b/src/ship/items/transaction.rs @@ -118,9 +118,11 @@ mod test { #[async_std::test] async fn test_item_transaction() { + #[derive(Debug)] struct DummyAction1 { name: String, } + #[derive(Debug)] struct DummyAction2 { value: u32, } @@ -201,8 +203,10 @@ mod test { #[async_std::test] async fn test_item_transaction_with_action_error() { + #[derive(Debug)] struct DummyAction1 { } + #[derive(Debug)] struct DummyAction2 { } @@ -270,8 +274,10 @@ mod test { #[async_std::test] async fn test_item_transaction_with_commit_error() { + #[derive(Debug)] struct DummyAction1 { } + #[derive(Debug)] struct DummyAction2 { } diff --git a/tests/test_bank.rs b/tests/test_bank.rs index e55d153..605a3aa 100644 --- a/tests/test_bank.rs +++ b/tests/test_bank.rs @@ -785,9 +785,8 @@ async fn test_deposit_stacked_item_in_full_bank_with_partial_stack() { async fn test_deposit_meseta() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.meseta = 300; - entity_gateway.save_character(&char1).await.unwrap(); + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + entity_gateway.set_character_meseta(&char1.id, item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -812,20 +811,19 @@ async fn test_deposit_meseta() { unknown: 0, })))).await.unwrap().for_each(drop); - let characters = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let char = characters[0].as_ref().unwrap(); - assert!(char.meseta == 277); - assert!(char.bank_meseta == 23); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c1_bank_meseta = entity_gateway.get_bank_meseta(&char1.id, item::BankName("".into())).await.unwrap(); + assert!(c1_meseta.0 == 277); + assert!(c1_bank_meseta.0 == 23); } #[async_std::test] async fn test_deposit_too_much_meseta() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.meseta = 300; - char1.bank_meseta = 999980; - entity_gateway.save_character(&char1).await.unwrap(); + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + entity_gateway.set_character_meseta(&char1.id, item::Meseta(300)).await.unwrap(); + entity_gateway.set_bank_meseta(&char1.id, item::BankName("".into()), item::Meseta(999980)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -850,21 +848,19 @@ async fn test_deposit_too_much_meseta() { unknown: 0, })))).await.unwrap().for_each(drop); - let characters = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let char = characters[0].as_ref().unwrap(); - assert!(char.meseta == 300); - assert!(char.bank_meseta == 999980); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c1_bank_meseta = entity_gateway.get_bank_meseta(&char1.id, item::BankName("".into())).await.unwrap(); + assert!(c1_meseta.0 == 300); + assert!(c1_bank_meseta.0 == 999980); } - #[async_std::test] async fn test_deposit_meseta_when_bank_is_maxed() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.meseta = 300; - char1.bank_meseta = 999999; - entity_gateway.save_character(&char1).await.unwrap(); + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + entity_gateway.set_character_meseta(&char1.id, item::Meseta(300)).await.unwrap(); + entity_gateway.set_bank_meseta(&char1.id, item::BankName("".into()), item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -889,10 +885,10 @@ async fn test_deposit_meseta_when_bank_is_maxed() { unknown: 0, })))).await.unwrap().for_each(drop); - let characters = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let char = characters[0].as_ref().unwrap(); - assert!(char.meseta == 300); - assert!(char.bank_meseta == 999999); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c1_bank_meseta = entity_gateway.get_bank_meseta(&char1.id, item::BankName("".into())).await.unwrap(); + assert!(c1_meseta.0 == 300); + assert!(c1_bank_meseta.0 == 999999); } @@ -1464,9 +1460,8 @@ async fn test_withdraw_stacked_item_in_full_inventory_with_partial_stack() { async fn test_withdraw_meseta() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.bank_meseta = 300; - entity_gateway.save_character(&char1).await.unwrap(); + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + entity_gateway.set_bank_meseta(&char1.id, item::BankName("".into()), item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -1491,20 +1486,19 @@ async fn test_withdraw_meseta() { unknown: 0, })))).await.unwrap().for_each(drop); - let characters = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let char = characters[0].as_ref().unwrap(); - assert!(char.meseta == 23); - assert!(char.bank_meseta == 277); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c1_bank_meseta = entity_gateway.get_bank_meseta(&char1.id, item::BankName("".into())).await.unwrap(); + assert!(c1_meseta.0 == 23); + assert!(c1_bank_meseta.0 == 277); } #[async_std::test] async fn test_withdraw_too_much_meseta() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.meseta = 999980; - char1.bank_meseta = 300; - entity_gateway.save_character(&char1).await.unwrap(); + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999980)).await.unwrap(); + entity_gateway.set_bank_meseta(&char1.id, item::BankName("".into()), item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -1529,20 +1523,19 @@ async fn test_withdraw_too_much_meseta() { unknown: 0, })))).await.unwrap().for_each(drop); - let characters = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let char = characters[0].as_ref().unwrap(); - assert!(char.meseta == 999980); - assert!(char.bank_meseta == 300); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c1_bank_meseta = entity_gateway.get_bank_meseta(&char1.id, item::BankName("".into())).await.unwrap(); + assert!(c1_meseta.0 == 999980); + assert!(c1_bank_meseta.0 == 300); } #[async_std::test] async fn test_withdraw_meseta_inventory_is_maxed() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.meseta = 999999; - char1.bank_meseta = 300; - entity_gateway.save_character(&char1).await.unwrap(); + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); + entity_gateway.set_bank_meseta(&char1.id, item::BankName("".into()), item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -1567,8 +1560,8 @@ async fn test_withdraw_meseta_inventory_is_maxed() { unknown: 0, })))).await.unwrap().for_each(drop); - let characters = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let char = characters[0].as_ref().unwrap(); - assert!(char.meseta == 999999); - assert!(char.bank_meseta == 300); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c1_bank_meseta = entity_gateway.get_bank_meseta(&char1.id, item::BankName("".into())).await.unwrap(); + assert!(c1_meseta.0 == 999999); + assert!(c1_bank_meseta.0 == 300); } diff --git a/tests/test_item_pickup.rs b/tests/test_item_pickup.rs index d5287d0..7feb377 100644 --- a/tests/test_item_pickup.rs +++ b/tests/test_item_pickup.rs @@ -221,7 +221,7 @@ async fn test_pick_up_meseta_when_inventory_full() { let mut entity_gateway = InMemoryGateway::default(); let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - let (user2, mut char2) = new_user_character(&mut entity_gateway, "a2", "a").await; + let (user2, char2) = new_user_character(&mut entity_gateway, "a2", "a").await; let mut p1_items = Vec::new(); for _ in 0..30usize { @@ -240,9 +240,7 @@ async fn test_pick_up_meseta_when_inventory_full() { } entity_gateway.set_character_inventory(&char1.id, &item::InventoryEntity::new(p1_items)).await.unwrap(); - - char2.meseta = 300; - entity_gateway.save_character(&char2).await.unwrap(); + entity_gateway.set_character_meseta(&char2.id, item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -284,12 +282,10 @@ async fn test_pick_up_meseta_when_inventory_full() { let inventory_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(inventory_items.items.len(), 30); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - let characters2 = entity_gateway.get_characters_by_user(&user2).await.unwrap(); - let c2 = characters2.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta == 23); - assert!(c2.meseta == 277); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c2_meseta = entity_gateway.get_character_meseta(&char2.id).await.unwrap(); + assert!(c1_meseta.0 == 23); + assert!(c2_meseta.0 == 277); } #[async_std::test] @@ -469,10 +465,9 @@ async fn test_can_not_pick_up_item_when_inventory_full() { async fn test_can_not_drop_more_meseta_than_is_held() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - char1.meseta = 300; - entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -501,9 +496,8 @@ async fn test_can_not_drop_more_meseta_than_is_held() { })))).await; assert!(split_attempt.is_err()); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta == 300); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert!(c1_meseta.0 == 300); } #[async_std::test] @@ -584,13 +578,11 @@ async fn test_pick_up_stack_that_would_exceed_stack_limit() { async fn test_can_not_pick_up_meseta_when_full() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - let (user2, mut char2) = new_user_character(&mut entity_gateway, "a2", "a").await; + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + let (user2, char2) = new_user_character(&mut entity_gateway, "a2", "a").await; - char1.meseta = 999999; - entity_gateway.save_character(&char1).await.unwrap(); - char2.meseta = 300; - entity_gateway.save_character(&char2).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); + entity_gateway.set_character_meseta(&char2.id, item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -630,25 +622,21 @@ async fn test_can_not_pick_up_meseta_when_full() { })))).await.unwrap().collect::>(); assert!(packets.len() == 0); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - let characters2 = entity_gateway.get_characters_by_user(&user2).await.unwrap(); - let c2 = characters2.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta == 999999); - assert!(c2.meseta == 277); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c2_meseta = entity_gateway.get_character_meseta(&char2.id).await.unwrap(); + assert!(c1_meseta.0 == 999999); + assert!(c2_meseta.0 == 277); } #[async_std::test] async fn test_meseta_caps_at_999999_when_trying_to_pick_up_more() { let mut entity_gateway = InMemoryGateway::default(); - let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; - let (user2, mut char2) = new_user_character(&mut entity_gateway, "a2", "a").await; + let (user1, char1) = new_user_character(&mut entity_gateway, "a1", "a").await; + let (user2, char2) = new_user_character(&mut entity_gateway, "a2", "a").await; - char1.meseta = 999998; - entity_gateway.save_character(&char1).await.unwrap(); - char2.meseta = 300; - entity_gateway.save_character(&char2).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999998)).await.unwrap(); + entity_gateway.set_character_meseta(&char2.id, item::Meseta(300)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -687,12 +675,10 @@ async fn test_meseta_caps_at_999999_when_trying_to_pick_up_more() { unknown: [0; 3] })))).await.unwrap().for_each(drop); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - let characters2 = entity_gateway.get_characters_by_user(&user2).await.unwrap(); - let c2 = characters2.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta == 999999); - assert!(c2.meseta == 277); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + let c2_meseta = entity_gateway.get_character_meseta(&char2.id).await.unwrap(); + assert!(c1_meseta.0 == 999999); + assert!(c2_meseta.0 == 277); } #[async_std::test] @@ -767,3 +753,20 @@ async fn test_player_drops_partial_stack_and_other_player_picks_it_up() { vec![item::ItemEntityId(1), item::ItemEntityId(2)]); }).unwrap(); } + +/* +#[async_std::test] +async fn test_try_and_pick_up_individual_item_twice() { + panic!() +} + +#[async_std::test] +async fn test_try_and_pick_up_stacked_item_twice() { + panic!() +} + +#[async_std::test] +async fn test_try_and_pick_up_meseta_twice() { + panic!() +} +*/ diff --git a/tests/test_shops.rs b/tests/test_shops.rs index 78e2e38..b792325 100644 --- a/tests/test_shops.rs +++ b/tests/test_shops.rs @@ -107,8 +107,8 @@ async fn test_player_buys_from_weapon_shop() { let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -132,9 +132,8 @@ async fn test_player_buys_from_weapon_shop() { unknown1: 0, })))).await.unwrap().for_each(drop); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta < 999999); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert!(c1_meseta.0 < 999999); //let p1_items = entity_gateway.get_items_by_character(&char1.id).await.unwrap(); let p1_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(p1_items.items.len(), 1); @@ -146,8 +145,8 @@ async fn test_player_buys_from_tool_shop() { let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -171,9 +170,8 @@ async fn test_player_buys_from_tool_shop() { unknown1: 0, })))).await.unwrap().for_each(drop); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta < 999999); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert!(c1_meseta.0 < 999999); let p1_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(p1_items.items.len(), 1); } @@ -184,8 +182,8 @@ async fn test_player_buys_multiple_from_tool_shop() { let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -209,9 +207,8 @@ async fn test_player_buys_multiple_from_tool_shop() { unknown1: 0, })))).await.unwrap().for_each(drop); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta < 999999); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert!(c1_meseta.0 < 999999); let p1_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(p1_items.items.len(), 1); p1_items.items[0].with_stacked(|item| { @@ -226,8 +223,8 @@ async fn test_player_buys_from_armor_shop() { let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -251,9 +248,8 @@ async fn test_player_buys_from_armor_shop() { unknown1: 0, })))).await.unwrap().for_each(drop); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta < 999999); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert!(c1_meseta.0 < 999999); let p1_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(p1_items.items.len(), 1); } @@ -269,7 +265,7 @@ async fn test_other_clients_see_purchase() { let (_user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; let (_user2, _char2) = new_user_character(&mut entity_gateway, "a2", "a").await; char1.exp = 80000000; - char1.meseta = 999999; + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); entity_gateway.save_character(&char1).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() @@ -312,8 +308,8 @@ async fn test_other_clients_see_stacked_purchase() { let (_user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; let (_user2, _char2) = new_user_character(&mut entity_gateway, "a2", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); entity_gateway.create_item( item::NewItemEntity { item: item::ItemDetail::Tool( @@ -385,9 +381,8 @@ async fn test_buying_item_without_enough_mseseta() { })))).await; assert!(packets.is_err()); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert_eq!(c1.meseta, 0); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert_eq!(c1_meseta.0, 0); let p1_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(p1_items.items.len(), 0); } @@ -398,8 +393,8 @@ async fn test_player_double_buys_from_tool_shop() { let (user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -441,9 +436,8 @@ async fn test_player_double_buys_from_tool_shop() { unknown1: 0, })))).await.unwrap().for_each(drop); - let characters1 = entity_gateway.get_characters_by_user(&user1).await.unwrap(); - let c1 = characters1.get(0).as_ref().unwrap().as_ref().unwrap(); - assert!(c1.meseta < 999999); + let c1_meseta = entity_gateway.get_character_meseta(&char1.id).await.unwrap(); + assert!(c1_meseta.0 < 999999); let p1_items = entity_gateway.get_character_inventory(&char1.id).await.unwrap(); assert_eq!(p1_items.items.len(), 2); p1_items.items[0].with_stacked(|item| { @@ -464,8 +458,8 @@ async fn test_techs_disappear_from_shop_when_bought() { let (_user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone()) @@ -526,8 +520,8 @@ async fn test_units_disappear_from_shop_when_bought() { let (_user1, mut char1) = new_user_character(&mut entity_gateway, "a1", "a").await; char1.exp = 80000000; - char1.meseta = 999999; entity_gateway.save_character(&char1).await.unwrap(); + entity_gateway.set_character_meseta(&char1.id, item::Meseta(999999)).await.unwrap(); let mut ship = Box::new(ShipServerState::builder() .gateway(entity_gateway.clone())