file_error_or_unittest.cc 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "base/files/file_error_or.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace base {
  7. namespace {
  8. TEST(FileErrorOrDeathTest, Error) {
  9. FileErrorOr<int> error(File::Error::FILE_ERROR_FAILED);
  10. EXPECT_TRUE(error.is_error());
  11. EXPECT_FALSE(error.is_value());
  12. EXPECT_EQ(error.error(), File::Error::FILE_ERROR_FAILED);
  13. EXPECT_DEATH_IF_SUPPORTED(error.value(), "");
  14. }
  15. TEST(FileErrorOrDeathTest, Value) {
  16. FileErrorOr<int> value(42);
  17. EXPECT_FALSE(value.is_error());
  18. EXPECT_TRUE(value.is_value());
  19. EXPECT_EQ(value.value(), 42);
  20. EXPECT_DEATH_IF_SUPPORTED(value.error(), "");
  21. }
  22. TEST(FileErrorOrDeathTest, ConstValue) {
  23. const FileErrorOr<int> const_value(1234);
  24. EXPECT_FALSE(const_value.is_error());
  25. EXPECT_TRUE(const_value.is_value());
  26. EXPECT_EQ(const_value.value(), 1234);
  27. EXPECT_DEATH_IF_SUPPORTED(const_value.error(), "");
  28. }
  29. } // namespace
  30. } // namespace base