NerfUS game coordinator for the Nerf gun firing range
Dependencies: HardwareInterface mbed-rtos mbed
Fork of NerfUS by
TESTS/GameCoordinatorTest.cpp@16:5e6c695468b6, 2017-02-23 (annotated)
- Committer:
- Maxime Dupuis
- Date:
- Thu Feb 23 21:22:57 2017 -0500
- Revision:
- 16:5e6c695468b6
Generate a random target course
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Maxime Dupuis |
16:5e6c695468b6 | 1 | #include "gmock/gmock.h" |
Maxime Dupuis |
16:5e6c695468b6 | 2 | #include "gtest/gtest.h" |
Maxime Dupuis |
16:5e6c695468b6 | 3 | |
Maxime Dupuis |
16:5e6c695468b6 | 4 | #include "GameCoordinator.hpp" |
Maxime Dupuis |
16:5e6c695468b6 | 5 | #include "MockRandomNumberGenerator.hpp" |
Maxime Dupuis |
16:5e6c695468b6 | 6 | |
Maxime Dupuis |
16:5e6c695468b6 | 7 | TEST(GameCoordinatorTest, GenerateRandomTargetCourse) |
Maxime Dupuis |
16:5e6c695468b6 | 8 | { |
Maxime Dupuis |
16:5e6c695468b6 | 9 | MockRandomNumberGenerator mock_random_number_generator; |
Maxime Dupuis |
16:5e6c695468b6 | 10 | EXPECT_CALL(mock_random_number_generator, get(0, 4)) |
Maxime Dupuis |
16:5e6c695468b6 | 11 | .Times(5) |
Maxime Dupuis |
16:5e6c695468b6 | 12 | .WillOnce(::testing::Return(1)) |
Maxime Dupuis |
16:5e6c695468b6 | 13 | .WillOnce(::testing::Return(5)) |
Maxime Dupuis |
16:5e6c695468b6 | 14 | .WillOnce(::testing::Return(2)) |
Maxime Dupuis |
16:5e6c695468b6 | 15 | .WillOnce(::testing::Return(3)) |
Maxime Dupuis |
16:5e6c695468b6 | 16 | .WillOnce(::testing::Return(1)); |
Maxime Dupuis |
16:5e6c695468b6 | 17 | EXPECT_CALL(mock_random_number_generator, get(0, 1)) |
Maxime Dupuis |
16:5e6c695468b6 | 18 | .Times(5) |
Maxime Dupuis |
16:5e6c695468b6 | 19 | .WillOnce(::testing::Return(0)) |
Maxime Dupuis |
16:5e6c695468b6 | 20 | .WillOnce(::testing::Return(1)) |
Maxime Dupuis |
16:5e6c695468b6 | 21 | .WillOnce(::testing::Return(1)) |
Maxime Dupuis |
16:5e6c695468b6 | 22 | .WillOnce(::testing::Return(0)) |
Maxime Dupuis |
16:5e6c695468b6 | 23 | .WillOnce(::testing::Return(1)); |
Maxime Dupuis |
16:5e6c695468b6 | 24 | |
Maxime Dupuis |
16:5e6c695468b6 | 25 | std::vector<TargetInfo> expected_targets; |
Maxime Dupuis |
16:5e6c695468b6 | 26 | expected_targets.push_back(make_TargetInfo(1, TARGET_TYPE_ALLY, 42)); |
Maxime Dupuis |
16:5e6c695468b6 | 27 | expected_targets.push_back(make_TargetInfo(5, TARGET_TYPE_ENEMY, 42)); |
Maxime Dupuis |
16:5e6c695468b6 | 28 | expected_targets.push_back(make_TargetInfo(2, TARGET_TYPE_ENEMY, 42)); |
Maxime Dupuis |
16:5e6c695468b6 | 29 | expected_targets.push_back(make_TargetInfo(3, TARGET_TYPE_ALLY, 42)); |
Maxime Dupuis |
16:5e6c695468b6 | 30 | expected_targets.push_back(make_TargetInfo(1, TARGET_TYPE_ENEMY, 42)); |
Maxime Dupuis |
16:5e6c695468b6 | 31 | |
Maxime Dupuis |
16:5e6c695468b6 | 32 | GameCoordinator game_coordinator(mock_random_number_generator); |
Maxime Dupuis |
16:5e6c695468b6 | 33 | const std::vector<TargetInfo> actual_targets = game_coordinator.generate_random_target_course(5, 42); |
Maxime Dupuis |
16:5e6c695468b6 | 34 | |
Maxime Dupuis |
16:5e6c695468b6 | 35 | EXPECT_THAT(expected_targets, ::testing::ContainerEq(actual_targets)); |
Maxime Dupuis |
16:5e6c695468b6 | 36 | } |
Maxime Dupuis |
16:5e6c695468b6 | 37 |