| // 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 |