From c554c692918e5d321da1b7ab967fae927c044591 Mon Sep 17 00:00:00 2001 From: bel Date: Sun, 3 May 2020 11:24:00 -0600 Subject: [PATCH] revert cause i like being able to omit things from tests --- .../src/controller/gamemaster/mod.rs | 118 +----------------- 1 file changed, 1 insertion(+), 117 deletions(-) diff --git a/secert-hitler/src/controller/gamemaster/mod.rs b/secert-hitler/src/controller/gamemaster/mod.rs index 80746c5..bfefc32 100644 --- a/secert-hitler/src/controller/gamemaster/mod.rs +++ b/secert-hitler/src/controller/gamemaster/mod.rs @@ -1,121 +1,5 @@ +pub mod gamemaster; pub mod player; pub mod role; pub mod lobby; pub mod gameevent; - -use super::super::model::state::room::Room; -use lobby::Lobby; -use gameevent::GameEvent; -use gameevent::GameEventType; -use std::thread; -use std::time; - -pub struct GameMaster { - room: Box, - lobby: Lobby, -} - -impl GameMaster { - fn new(room: Box) -> GameMaster { - GameMaster{ - room: room, - lobby: Lobby::new(), - } - } - - fn run(&mut self) -> Result { - self.run_lobby()?; - self.run_game_setup()?; - self.run_game() - } - - fn run_lobby(&mut self) -> Result { - while !self.lobby.locked { - let rollback = self.room.since(); - let events = self.room.sync(); - for e in &events { - let ge = GameEvent::new(e.body.clone()); - if ge.mode() == GameEventType::GameStart { - self.room.rollback(e.since.clone()); - self.lobby.lock(); - return Ok("ok".to_string()); - } - self.lobby.eat(e.clone()); - } - thread::sleep(time::Duration::new(1, 0)); - } - Ok("ok".to_string()) // todo: on lobby too small, return err and do not lock - } - - fn run_game_setup(&mut self) -> Result { - Err("not impl".to_string()) - } - - fn run_game(&mut self) -> Result { - Err("not impl".to_string()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use super::super::super::model::state::mockroom::MockRoom; - use super::super::super::model::state::mockrooms::MockRooms; - use super::super::super::model::state::rooms::Rooms; - - #[test] - fn new_mockroom() { - let _ = GameMaster::new(Box::new(MockRoom::create())); - } - - #[test] - fn new_rooms_mockrooms() { - fn get() -> impl Rooms { - let mrs = MockRooms::new(); - mrs - } - let mut mrs = get(); - let r = mrs.create(); - let _ = GameMaster::new(r); - } - - #[test] - fn new_mockrooms() { - let mut mrs = MockRooms::new(); - let r = mrs.create(); - let _ = GameMaster::new(r); - } - - #[test] - fn run_lobby() { - let mut mrs = MockRooms::new(); - let r1 = mrs.create(); - let room_id = r1.room_id(); - let mut gm = GameMaster::new(r1); - let mut r2 = mrs.join(room_id).unwrap(); - r2.send(format!(r#"{{ - "msgtype": "m.text", - "body": "{{\"GameEventType\": \"GameStart\"}}" - }}"#)).unwrap(); // TODO mark end of new players - gm.run_lobby(); // todo assert is_ok - assert!(gm.lobby.players.len() == 2, "first run_lobby players: {:?}, sync: {:?}", gm.lobby.players, gm.room.sync()); - let mut players1 = vec![]; - for k in gm.lobby.players.keys() { - players1.push(k.clone()); - } - gm.run_lobby(); // todo assert is_ok - assert!(gm.lobby.players.len() == 2, "secnd run_lobby players: {:?}, sync: {:?}", gm.lobby.players, gm.room.sync()); - let players2 = gm.lobby.players.keys(); - assert!(format!("{:?}", players1) == format!("{:?}", players2)); - } - - #[test] - fn run_game_setup_fail() { - assert!(false, "not impl"); - } - - #[test] - fn run_game_fail() { - assert!(false, "not impl"); - } -}