1pub mod player;
2pub mod enemy;
3pub mod bullet;
4pub mod game_state;
5
6pub use player::Player;
7pub use enemy::Enemy;
8pub use bullet::{Bullet, EnemyBullet};
9pub use game_state::GameState;
10
11#[cfg(test)]
12mod integration_tests {
13 use super::*;
14
15 #[test]
16 fn test_game_state_creation() {
17 let game = GameState::new();
18 assert_eq!(game.score, 0);
19 assert_eq!(game.enemies_defeated, 0);
20 assert!(!game.game_over);
21 assert!(!game.victory_screen);
22 assert!(!game.enemy_weakness_revealed);
23 assert!(game.enemy.is_some());
24 assert_eq!(game.bullets.len(), 0);
25 assert_eq!(game.enemy_bullets.len(), 0);
26 }
27
28 #[test]
29 fn test_all_components_work_together() {
30 let player = Player::new();
31 let enemy = Enemy::new();
32 let game = GameState::new();
33
34 assert!(player.hp > 0);
36 assert!(enemy.hp > 0);
37 assert!(game.enemy.is_some());
38 }
39}