blob: 09ef4bca82f9f84648c81063ec0499b8a4ad0f42 [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <gtest/gtest.h>
#include "minios/mock_process_manager.h"
#include "minios/recovery_installer.h"
using testing::_;
namespace minios {
class RecoveryInstallerTest : public ::testing::Test {
protected:
MockProcessManager mock_process_manager_;
RecoveryInstaller recovery_installer_{&mock_process_manager_};
};
TEST_F(RecoveryInstallerTest, RepartitionDiskFailure) {
EXPECT_CALL(mock_process_manager_, RunCommand(_, _))
.WillOnce(testing::Return(false));
EXPECT_FALSE(recovery_installer_.RepartitionDisk());
}
TEST_F(RecoveryInstallerTest, RepeatedRepartitionDisk) {
EXPECT_CALL(mock_process_manager_, RunCommand(_, _))
.WillOnce(testing::Return(true));
EXPECT_TRUE(recovery_installer_.RepartitionDisk());
// Does not call to repartition the disk again since it completed successfully
// last time. Still returns true.
EXPECT_TRUE(recovery_installer_.RepartitionDisk());
}
} // namespace minios