| 1488 | |
| 1489 | #[test] |
| 1490 | fn test_research() { |
| 1491 | // Create a unit and check that its basic fields are correct. |
| 1492 | let loc = MapLocation::new(Planet::Earth, 0, 0); |
| 1493 | let mut unit_a = Unit::new(1, Team::Red, Worker, 0, OnMap(loc)).unwrap(); |
| 1494 | assert_eq!(unit_a.id(), 1); |
| 1495 | assert_eq!(unit_a.team(), Team::Red); |
| 1496 | assert_eq!(unit_a.unit_type(), Worker); |
| 1497 | |
| 1498 | // Upgrade it twice and check its stats have been updated. |
| 1499 | assert_eq!(unit_a.research_level(), 0); |
| 1500 | assert_eq!(unit_a.worker_harvest_amount().unwrap(), 3); |
| 1501 | assert_eq!(unit_a.worker_build_health().unwrap(), 5); |
| 1502 | |
| 1503 | unit_a.research().unwrap(); |
| 1504 | assert_eq!(unit_a.research_level(), 1); |
| 1505 | assert_eq!(unit_a.worker_harvest_amount().unwrap(), 4); |
| 1506 | assert_eq!(unit_a.worker_build_health().unwrap(), 5); |
| 1507 | |
| 1508 | unit_a.research().unwrap(); |
| 1509 | assert_eq!(unit_a.research_level(), 2); |
| 1510 | assert_eq!(unit_a.worker_harvest_amount().unwrap(), 4); |
| 1511 | assert_eq!(unit_a.worker_build_health().unwrap(), 6); |
| 1512 | |
| 1513 | // Create a unit with a default level above 0, and check its stats. |
| 1514 | let unit_b = Unit::new(2, Team::Red, Worker, 2, OnMap(loc)).unwrap(); |
| 1515 | assert_eq!(unit_b.research_level(), 2); |
| 1516 | assert_eq!(unit_b.worker_harvest_amount().unwrap(), 4); |
| 1517 | assert_eq!(unit_b.worker_build_health().unwrap(), 6); |
| 1518 | } |
| 1519 | |
| 1520 | #[test] |
| 1521 | fn test_cant_use_ability_on_first_turn() { |