NerfUS game coordinator for the Nerf gun firing range

Dependencies:   HardwareInterface mbed-rtos mbed

Fork of NerfUS by NerfUS

Committer:
Ismael Balafrej
Date:
Thu Mar 30 13:40:36 2017 -0400
Branch:
PlayableGame
Revision:
19:33e8cd56630f
Parent:
16:5e6c695468b6
W/e

Who changed what in which revision?

UserRevisionLine numberNew 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