From 0ac983832bb7dd1d1d09719cf97c5fa2dd24cf64 Mon Sep 17 00:00:00 2001 From: Pavel Perestoronin Date: Thu, 4 May 2023 17:53:52 +0200 Subject: [PATCH] Fix: make some fields optional --- src/models/data/base_player_create.rs | 16 ++++++------ tests/data.rs | 34 ++++++++++++++++--------- tests/replays/training_room.wotbreplay | Bin 0 -> 37596 bytes 3 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 tests/replays/training_room.wotbreplay diff --git a/src/models/data/base_player_create.rs b/src/models/data/base_player_create.rs index f661535..4ca906a 100644 --- a/src/models/data/base_player_create.rs +++ b/src/models/data/base_player_create.rs @@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] pub struct BasePlayerCreate { - #[serde(rename(deserialize = "playersBattleCategoriesIds"))] - pub players_battle_categories_ids: HashMap, + #[serde(default, rename(deserialize = "playersBattleCategoriesIds"))] + pub players_battle_categories_ids: Option>, #[serde(rename(deserialize = "battleLevel"))] pub battle_level: u8, @@ -22,17 +22,17 @@ pub struct BasePlayerCreate { #[serde(rename(deserialize = "camouflageSlot"))] pub camouflage_slot: u8, - #[serde(rename(deserialize = "avgMmr"))] - pub average_mmr: Vec>, + #[serde(default, rename(deserialize = "avgMmr"))] + pub average_mmr: Option>>, - #[serde(rename(deserialize = "playerWaitTimes"))] - pub player_wait_times: HashMap, + #[serde(default, rename(deserialize = "playerWaitTimes"))] + pub player_wait_times: Option>, #[serde(rename(deserialize = "accountDatabaseIds"))] pub account_database_ids: Vec, - #[serde(rename(deserialize = "turboBattlesStats"))] - pub turbo_battles_statistics: TurboBattlesStatistics, + #[serde(default, rename(deserialize = "turboBattlesStats"))] + pub turbo_battles_statistics: Option, } #[derive(Debug, Serialize, Deserialize)] diff --git a/tests/data.rs b/tests/data.rs index 77d8a68..8670237 100644 --- a/tests/data.rs +++ b/tests/data.rs @@ -19,13 +19,13 @@ fn parse_ok() -> Result<()> { } #[test] -fn type0_ok() -> Result<()> { +fn base_player_create_ok() -> Result<()> { let mut replay = Replay::open(File::open( "tests/replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay", )?)?; let data = replay.read_data()?; - let (author_nickname, arena_unique_id, arena_type_id, type_0) = data + let (author_nickname, arena_unique_id, arena_type_id, arguments) = data .packets .iter() .filter_map(|packet| { @@ -46,14 +46,17 @@ fn type0_ok() -> Result<()> { assert_eq!(author_nickname, "helaas_pindakaas"); assert_eq!(*arena_unique_id, 16114615898101270); assert_eq!(*arena_type_id, 43); - assert_eq!(type_0.battle_level, 9); - assert_eq!(type_0.battle_category_id, 13); - assert!(type_0.is_mouse_enabled); - assert_eq!(type_0.matchmaker_type, 2); - assert_eq!(type_0.camouflage_slot, 1); - assert_eq!(type_0.average_mmr, [Some(59.29457753400008), Some(99.34182121604681)]); + assert_eq!(arguments.battle_level, 9); + assert_eq!(arguments.battle_category_id, 13); + assert!(arguments.is_mouse_enabled); + assert_eq!(arguments.matchmaker_type, 2); + assert_eq!(arguments.camouflage_slot, 1); assert_eq!( - type_0.account_database_ids, + arguments.average_mmr, + Some(vec![Some(59.29457753400008), Some(99.34182121604681)]) + ); + assert_eq!( + arguments.account_database_ids, [ 517033644, 537867068, 597583401, 601893865, 576810156, 531053956, 599580824, 558025185, 526927603, 594778041, 505587490, 597422303, 531923111, 587617355 @@ -64,7 +67,7 @@ fn type0_ok() -> Result<()> { } #[test] -fn subtype_2f_players_ok() -> Result<()> { +fn update_arena_ok() -> Result<()> { let mut replay = Replay::open(File::open( "tests/replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay", )?)?; @@ -74,8 +77,8 @@ fn subtype_2f_players_ok() -> Result<()> { .packets .iter() .filter_map(|packet| match &packet.payload { - Payload::EntityMethod(EntityMethod::UpdateArena { arguments: sub_type_2f, .. }) => { - sub_type_2f.players.as_ref() + Payload::EntityMethod(EntityMethod::UpdateArena { arguments, .. }) => { + arguments.players.as_ref() } _ => None, }) @@ -91,3 +94,10 @@ fn subtype_2f_players_ok() -> Result<()> { Ok(()) } + +#[test] +fn training_room_ok() -> Result<()> { + let mut replay = Replay::open(File::open("tests/replays/training_room.wotbreplay")?)?; + replay.read_data()?; + Ok(()) +} diff --git a/tests/replays/training_room.wotbreplay b/tests/replays/training_room.wotbreplay new file mode 100644 index 0000000000000000000000000000000000000000..8862713ebd766b2e3d0860930730890e68e66443 GIT binary patch literal 37596 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 O5D#!Q09HJG-}@brTlzHs literal 0 HcmV?d00001