|
|
@@ -44,6 +44,8 @@ void GameDispatchTest::SetUp() {
|
|
|
renderer_.reset(new stub_renderer);
|
|
|
dispatch_.reset(new engine::game_dispatch(renderer_));
|
|
|
scene_.reset(new mock_scene(dispatch_));
|
|
|
+ game().register_scene(scene_);
|
|
|
+ game().activate_scene("mock");
|
|
|
}
|
|
|
|
|
|
void GameDispatchTest::TearDown() {
|
|
|
@@ -51,3 +53,26 @@ void GameDispatchTest::TearDown() {
|
|
|
dispatch_.reset();
|
|
|
renderer_.reset();
|
|
|
}
|
|
|
+
|
|
|
+using testing::AnyNumber;
|
|
|
+using testing::Ge;
|
|
|
+using testing::Lt;
|
|
|
+using testing::_;
|
|
|
+
|
|
|
+TEST_F(GameDispatchTest, UpdateDispatchesToCurrentScene) {
|
|
|
+ EXPECT_CALL(scene(), update(_)).Times(1);
|
|
|
+ game().update();
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(GameDispatchTest, UpdateIsCappedInFrequencyByFPSParam) {
|
|
|
+ EXPECT_CALL(scene(), update(Ge(1.0 / 60.0))).Times(AnyNumber());
|
|
|
+ EXPECT_CALL(scene(), update(Lt(1.0 / 60.0))).Times(0);
|
|
|
+ for (int i = 0; i < 10; i++) {
|
|
|
+ game().update();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(GameDispatchTest, RenderDispatchesToCurrentScene) {
|
|
|
+ EXPECT_CALL(scene(), render(_)).Times(1);
|
|
|
+ game().render();
|
|
|
+}
|