blob: caadff5aa6fadb3510cd76611e4efa4647f4fbaa [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 "src/storage/volume_image/options.h"
#include <gtest/gtest.h>
namespace storage::volume_image {
namespace {
TEST(CompressionSchemaTest, EnumAsStringIsOk) {
EXPECT_EQ("COMPRESSION_SCHEMA_NONE", EnumAsString(CompressionSchema::kNone));
EXPECT_EQ("COMPRESSION_SCHEMA_LZ4", EnumAsString(CompressionSchema::kLz4));
}
TEST(CompressionSchemaTest, StringAsEnumWithValidStringIsOk) {
{
auto schema_result = StringAsEnum<CompressionSchema>("COMPRESSION_SCHEMA_NONE");
ASSERT_TRUE(schema_result.is_ok()) << schema_result.error();
EXPECT_EQ(CompressionSchema::kNone, schema_result.value());
}
{
auto schema_result = StringAsEnum<CompressionSchema>("COMPRESSION_SCHEMA_LZ4");
ASSERT_TRUE(schema_result.is_ok()) << schema_result.error();
EXPECT_EQ(CompressionSchema::kLz4, schema_result.value());
}
}
TEST(CompressionSchemaTest, StringAsEnumWithInvalidStringIsError) {
auto schema_result = StringAsEnum<CompressionSchema>("COMPRESSION_SCHEMA_BAD_OR_UNKNOWN");
ASSERT_TRUE(schema_result.is_error()) << schema_result.error();
}
TEST(EncryptionTypeTest, EnumAsStringIsOk) {
EXPECT_EQ("ENCRYPTION_TYPE_NONE", EnumAsString(EncryptionType::kNone));
EXPECT_EQ("ENCRYPTION_TYPE_ZXCRYPT", EnumAsString(EncryptionType::kZxcrypt));
}
TEST(EncryptionTypeTest, StringAsEnumWithValidStringIsOk) {
{
auto encryption_type_result = StringAsEnum<EncryptionType>("ENCRYPTION_TYPE_NONE");
ASSERT_TRUE(encryption_type_result.is_ok()) << encryption_type_result.error();
EXPECT_EQ(EncryptionType::kNone, encryption_type_result.value());
}
{
auto encryption_type_result = StringAsEnum<EncryptionType>("ENCRYPTION_TYPE_ZXCRYPT");
ASSERT_TRUE(encryption_type_result.is_ok()) << encryption_type_result.error();
EXPECT_EQ(EncryptionType::kZxcrypt, encryption_type_result.value());
}
}
TEST(EncryptionTypeTest, StringAsEnumWithInvalidStringIsError) {
auto encryption_type_result = StringAsEnum<EncryptionType>("ENCRYPTION_TYPE_BAD_OR_UNKNOWN");
ASSERT_TRUE(encryption_type_result.is_error()) << encryption_type_result.error();
}
TEST(OptionTest, EnumAsStringIsOk) {
EXPECT_EQ("OPTION_NONE", EnumAsString(Option::kNone));
EXPECT_EQ("OPTION_EMPTY", EnumAsString(Option::kEmpty));
}
TEST(OptionTest, StringAsEnumWithValidStringIsOk) {
{
auto option_result = StringAsEnum<Option>("OPTION_NONE");
ASSERT_TRUE(option_result.is_ok()) << option_result.error();
EXPECT_EQ(Option::kNone, option_result.value());
}
{
auto option_result = StringAsEnum<Option>("OPTION_EMPTY");
ASSERT_TRUE(option_result.is_ok()) << option_result.error();
EXPECT_EQ(Option::kEmpty, option_result.value());
}
}
TEST(OptionTest, StringAsEnumWithInvalidStringIsError) {
auto option_result = StringAsEnum<Option>("OPTION_BAD_OR_UNKNOWN");
ASSERT_TRUE(option_result.is_error()) << option_result.error();
}
} // namespace
} // namespace storage::volume_image