blob: 845a7af3cdcaafb3f1179582cc80613b2649f92d [file] [log] [blame]
// Copyright 2022 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 <fidl/test.types/cpp/hlcpp_conversion.h>
#include <gtest/gtest.h>
TEST(EnumConversion, StrictEnumToNatural) {
test::types::StrictEnum hlcpp = test::types::StrictEnum::D;
auto natural = fidl::HLCPPToNatural(hlcpp);
static_assert(std::is_same_v<decltype(natural), test_types::StrictEnum>);
EXPECT_EQ(natural, test_types::StrictEnum::kD);
}
TEST(EnumConversion, StrictEnumToHLCPP) {
test_types::StrictEnum natural = test_types::StrictEnum::kD;
auto hlcpp = fidl::NaturalToHLCPP(natural);
static_assert(std::is_same_v<decltype(hlcpp), test::types::StrictEnum>);
EXPECT_EQ(hlcpp, test::types::StrictEnum::D);
}
TEST(EnumConversion, FlexibleEnumToNatural) {
test::types::FlexibleEnum hlcpp = test::types::FlexibleEnum::D;
auto natural = fidl::HLCPPToNatural(hlcpp);
static_assert(std::is_same_v<decltype(natural), test_types::FlexibleEnum>);
EXPECT_EQ(natural, test_types::FlexibleEnum::kD);
}
TEST(EnumConversion, FlexibleEnumToHLCPP) {
test_types::FlexibleEnum natural = test_types::FlexibleEnum::kD;
auto hlcpp = fidl::NaturalToHLCPP(natural);
static_assert(std::is_same_v<decltype(hlcpp), test::types::FlexibleEnum>);
EXPECT_EQ(hlcpp, test::types::FlexibleEnum::D);
}