| // 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/utils/guid.h" |
| |
| #include <array> |
| #include <string> |
| #include <string_view> |
| |
| #include <gtest/gtest.h> |
| |
| namespace storage::volume_image { |
| namespace { |
| |
| TEST(GuidTest, ToStringFromSmallBufferIsError) { |
| uint8_t buffer[kGuidLength - 1] = {}; |
| ASSERT_TRUE(Guid::ToString(buffer).is_error()); |
| } |
| |
| TEST(GuidTest, ToStringFromBigBufferIsError) { |
| uint8_t buffer[kGuidLength + 1] = {}; |
| ASSERT_TRUE(Guid::ToString(buffer).is_error()); |
| } |
| |
| TEST(GuidTest, ToStringFromExactSizedBufferIsOk) { |
| constexpr std::array<uint8_t, kGuidLength> guid = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, |
| 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, |
| 0x0C, 0x0D, 0xE, 0x0F}; |
| constexpr std::string_view kExpectedGuid = "03020100-0504-0706-0809-0A0B0C0D0E0F"; |
| |
| auto guid_result = Guid::ToString(guid); |
| |
| EXPECT_EQ(kExpectedGuid, guid_result.value()); |
| } |
| |
| TEST(GuidTest, ToStringIsReverseOperationOfFromString) { |
| constexpr std::string_view kGuid = "03020100-0504-0706-0809-0A0B0C0D0E0F"; |
| auto guid_result = Guid::ToString(Guid::FromString(kGuid).value()).value(); |
| EXPECT_EQ(kGuid, guid_result); |
| } |
| |
| TEST(GuidTest, FromStringFromSmallBufferIsError) { |
| constexpr std::array<char, kGuidStrLength - 1> buffer = {}; |
| ASSERT_TRUE(Guid::FromString(buffer).is_error()); |
| } |
| |
| TEST(GuidTest, FromStringFromBigBufferIsError) { |
| constexpr std::array<char, kGuidStrLength + 1> buffer = {}; |
| ASSERT_TRUE(Guid::FromString(buffer).is_error()); |
| } |
| |
| TEST(GuidTest, FromStringFromExactSizedBufferIsOk) { |
| constexpr std::array<uint8_t, kGuidLength> kExpectedGuid = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, |
| 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, |
| 0x0C, 0x0D, 0xE, 0x0F}; |
| constexpr std::string_view kGuid = "03020100-0504-0706-0809-0A0B0C0D0E0F"; |
| |
| auto guid_result = Guid::FromString(kGuid); |
| |
| EXPECT_EQ(kExpectedGuid, guid_result.value()); |
| } |
| |
| TEST(GuidTest, FromStringIsReverseOperationOfToString) { |
| constexpr std::array<uint8_t, kGuidLength> kGuid = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, |
| 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, |
| 0x0C, 0x0D, 0xE, 0x0F}; |
| auto guid_result = Guid::FromString(Guid::ToString(kGuid).value()).value(); |
| EXPECT_EQ(kGuid, guid_result); |
| } |
| |
| } // namespace |
| } // namespace storage::volume_image |