NerfUS game coordinator for the Nerf gun firing range

Dependencies:   HardwareInterface mbed-rtos mbed

Fork of NerfUS by NerfUS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GameCoordinatorTest.cpp Source File

GameCoordinatorTest.cpp

00001 #include "gmock/gmock.h"
00002 #include "gtest/gtest.h"
00003 
00004 #include "GameCoordinator.hpp"
00005 #include "MockRandomNumberGenerator.hpp"
00006 
00007 TEST(GameCoordinatorTest, GenerateRandomTargetCourse)
00008 {
00009     MockRandomNumberGenerator mock_random_number_generator;
00010     EXPECT_CALL(mock_random_number_generator, get(0, 4))
00011         .Times(5)
00012         .WillOnce(::testing::Return(1))
00013         .WillOnce(::testing::Return(5))
00014         .WillOnce(::testing::Return(2))
00015         .WillOnce(::testing::Return(3))
00016         .WillOnce(::testing::Return(1));
00017     EXPECT_CALL(mock_random_number_generator, get(0, 1))
00018         .Times(5)
00019         .WillOnce(::testing::Return(0))
00020         .WillOnce(::testing::Return(1))
00021         .WillOnce(::testing::Return(1))
00022         .WillOnce(::testing::Return(0))
00023         .WillOnce(::testing::Return(1));
00024 
00025     std::vector<TargetInfo> expected_targets;
00026     expected_targets.push_back(make_TargetInfo(1, TARGET_TYPE_ALLY, 42));
00027     expected_targets.push_back(make_TargetInfo(5, TARGET_TYPE_ENEMY, 42));
00028     expected_targets.push_back(make_TargetInfo(2, TARGET_TYPE_ENEMY, 42));
00029     expected_targets.push_back(make_TargetInfo(3, TARGET_TYPE_ALLY, 42));
00030     expected_targets.push_back(make_TargetInfo(1, TARGET_TYPE_ENEMY, 42));
00031 
00032     GameCoordinator game_coordinator(mock_random_number_generator);
00033     const std::vector<TargetInfo> actual_targets = game_coordinator.generate_random_target_course(5, 42);
00034 
00035     EXPECT_THAT(expected_targets, ::testing::ContainerEq(actual_targets));
00036 }
00037