blob: 9e0374d1245dc58cbc149bacf1ae23cb58db9ce1 [file] [log] [blame] [edit]
// Copyright 2023 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <memory>
#include <string>
#include <utility>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <libimageloader/manifest.h>
#include "dlcservice/utils/mock_utils.h"
#include "dlcservice/utils/utils.h"
using testing::_;
using testing::StrictMock;
namespace dlcservice {
TEST(UtilsTest, LogicalVolumeNameTest) {
Utils u;
EXPECT_EQ("dlc_sample-dlc_a",
u.LogicalVolumeName("sample-dlc", PartitionSlot::A));
EXPECT_EQ("dlc_sample-dlc_b",
u.LogicalVolumeName("sample-dlc", PartitionSlot::B));
}
TEST(UtilsTest, LogicalVolumeNameToIdTest) {
Utils u;
EXPECT_EQ("", u.LogicalVolumeNameToId("bad-logical-volume-name"));
EXPECT_EQ("foo", u.LogicalVolumeNameToId("dlc_foo_a"));
EXPECT_EQ("", u.LogicalVolumeNameToId(std::string(kDlcLogicalVolumePrefix) +
"foo"));
EXPECT_EQ(
"", u.LogicalVolumeNameToId(std::string("foo") + kDlcLogicalVolumeSlotA));
EXPECT_EQ(
"", u.LogicalVolumeNameToId(std::string("foo") + kDlcLogicalVolumeSlotB));
EXPECT_EQ("foo",
u.LogicalVolumeNameToId(std::string(kDlcLogicalVolumePrefix) +
"foo" + kDlcLogicalVolumeSlotA));
EXPECT_EQ("foo",
u.LogicalVolumeNameToId(std::string(kDlcLogicalVolumePrefix) +
"foo" + kDlcLogicalVolumeSlotB));
}
class FunctionsTest : public testing::Test {
public:
FunctionsTest() = default;
FunctionsTest(const FunctionsTest&) = delete;
FunctionsTest& operator=(const FunctionsTest&) = delete;
void SetUp() override {
mu_ = std::make_unique<StrictMock<MockUtils>>();
mu_ptr_ = mu_.get();
}
protected:
MockUtils* mu_ptr_ = nullptr;
std::unique_ptr<MockUtils> mu_;
};
TEST_F(FunctionsTest, LogicalVolumeNameFunctionsTest) {
EXPECT_CALL(*mu_ptr_, LogicalVolumeName(_, _));
(void)LogicalVolumeName("", {}, std::move(mu_));
}
TEST_F(FunctionsTest, HashFileFunctionsTest) {
EXPECT_CALL(*mu_ptr_, HashFile(_, _, _, _));
(void)HashFile(base::FilePath(), 0, nullptr, false, std::move(mu_));
}
TEST_F(FunctionsTest, GetCompressedDlcManifestTest) {
EXPECT_CALL(*mu_ptr_, GetDlcManifest(_, _))
.WillOnce(testing::Return(std::make_shared<imageloader::Manifest>()));
(void)GetDlcManifest("", base::FilePath(), std::move(mu_));
}
} // namespace dlcservice