#include "components/media_router/common/providers/cast/channel/enum_table.h"
#include <optional>
#include "base/test/gtest_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cast_util {
namespace {
enum class MyEnum { … };
const EnumTable<MyEnum> kSorted({ … },
MyEnum::kMaxValue);
const EnumTable<MyEnum> kUnsorted({ … },
NonConsecutiveEnumTable);
const EnumTable<MyEnum> kSortedMissing({ … },
MyEnum::kMaxValue);
const EnumTable<MyEnum> kUnsortedMissing({ … },
NonConsecutiveEnumTable);
}
template <>
const EnumTable<MyEnum>& EnumTable<MyEnum>::GetInstance() { … }
namespace {
TEST(EnumTableTest, TestGetString) { … }
TEST(EnumTableTest, TestGetStringUnsorted) { … }
TEST(EnumTableTest, TestGetMissingString) { … }
TEST(EnumTableTest, TestGetMissingStringUnsorted) { … }
TEST(EnumTableTest, TestEnumToStringGlobal) { … }
TEST(EnumTableTest, TestStaticGetString) { … }
TEST(EnumTableTest, TestStaticEnumToStringGlobal) { … }
TEST(EnumTableTest, TestGetEnum) { … }
TEST(EnumTableTest, TestStringToEnumGlobal) { … }
#ifndef NDEBUG
TEST(EnumTableDeathTest, MaxValueTooSmall) { … }
TEST(EnumTableDeathTest, MaxValueTooLarge) { … }
TEST(EnumTableDeathTest, Sorted) { … }
TEST(EnumTableDeathTest, Unsorted) { … }
TEST(EnumTableDeathTest, DuplicateEnums) { … }
TEST(EnumTableDeathTest, DuplicateStrings) { … }
constexpr MyEnum kInvalid = …;
TEST(EnumTableDeathTest, EnumToString) { … }
TEST(EnumTableDeathTest, StaticEnumToString) { … }
enum class HugeEnum { … };
TEST(EnumTableDeathTest, HugeEnum) { … }
#endif
}
}