blob: 7c7534fe00f792932c5dbc3f04789ff4191f9854 [file] [log] [blame] [edit]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "minios/screens/screen_welcome.h"
#include <gtest/gtest.h>
#include "minios/mock_draw.h"
#include "minios/mock_screen_controller.h"
using ::testing::NiceMock;
using ::testing::StrictMock;
namespace minios {
class ScreenWelcomeTest : public ::testing::Test {
protected:
std::shared_ptr<MockDraw> mock_draw_ =
std::make_shared<NiceMock<MockDraw>>();
MockDraw* mock_draw_ptr_ = mock_draw_.get();
StrictMock<MockScreenControllerInterface> mock_screen_controller_;
ScreenWelcome screen_welcome_{mock_draw_, &mock_screen_controller_};
};
TEST_F(ScreenWelcomeTest, GetState) {
EXPECT_CALL(mock_screen_controller_, OnStateChanged);
screen_welcome_.Show();
EXPECT_EQ(State::IDLE, screen_welcome_.GetState().state());
}
TEST_F(ScreenWelcomeTest, MoveForward) {
EXPECT_CALL(mock_screen_controller_, OnForward(&screen_welcome_));
EXPECT_TRUE(screen_welcome_.MoveForward(nullptr));
}
TEST_F(ScreenWelcomeTest, MoveBackward) {
EXPECT_FALSE(screen_welcome_.MoveBackward(nullptr));
}
} // namespace minios