/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ #include #include class PlatformHelperTest : public UnitTest::ScopedAllocatorSetupFixture { public: }; TEST_F(PlatformHelperTest, SinglePlatformFlags_PlatformId_Valid) { AzFramework::PlatformFlags platform = AzFramework::PlatformFlags::Platform_PC; AZStd::vector platforms = AzFramework::PlatformHelper::GetPlatforms(platform); EXPECT_EQ(platforms.size(), 1); EXPECT_EQ(platforms[0], "pc"); } TEST_F(PlatformHelperTest, MultiplePlatformFlags_PlatformId_Valid) { AzFramework::PlatformFlags platformFlags = AzFramework::PlatformFlags::Platform_PC | AzFramework::PlatformFlags::Platform_ES3; AZStd::vector platforms = AzFramework::PlatformHelper::GetPlatforms(platformFlags); EXPECT_EQ(platforms.size(), 2); EXPECT_EQ(platforms[0], "pc"); EXPECT_EQ(platforms[1], "es3"); } TEST_F(PlatformHelperTest, SpecialAllFlag_PlatformId_Valid) { AzFramework::PlatformFlags platformFlags = AzFramework::PlatformFlags::Platform_ALL; AZStd::vector platforms = AzFramework::PlatformHelper::GetPlatformsInterpreted(platformFlags); EXPECT_EQ(platforms.size(), AzFramework::NumPlatforms); EXPECT_THAT(platforms, testing::UnorderedElementsAre("pc", "es3", "ios", "osx_gl", "xenia", "provo", "salem", "server")); } TEST_F(PlatformHelperTest, SpecialAllClientFlag_PlatformId_Valid) { AzFramework::PlatformFlags platformFlags = AzFramework::PlatformFlags::Platform_ALL_CLIENT; AZStd::vector platforms = AzFramework::PlatformHelper::GetPlatformsInterpreted(platformFlags); EXPECT_EQ(platforms.size(), AzFramework::NumClientPlatforms); EXPECT_THAT(platforms, testing::UnorderedElementsAre("pc", "es3", "ios", "osx_gl", "xenia", "provo", "salem")); } TEST_F(PlatformHelperTest, InvalidPlatformFlags_PlatformId_Empty) { AZ::u32 platformFlags = 1 << 10; // Currently we do not have this bit set indicating a valid platform. AZStd::vector platforms = AzFramework::PlatformHelper::GetPlatforms(static_cast(platformFlags)); EXPECT_EQ(platforms.size(), 0); } TEST_F(PlatformHelperTest, GetPlatformName_Valid_OK) { AZStd::string platformName = AzFramework::PlatformHelper::GetPlatformName(AzFramework::PlatformId::PC); EXPECT_EQ(platformName, AzFramework::PlatformPC); } TEST_F(PlatformHelperTest, GetPlatformName_Invalid_OK) { AZStd::string platformName = AzFramework::PlatformHelper::GetPlatformName(static_cast(-1)); EXPECT_TRUE(platformName.compare("invalid") == 0); } TEST_F(PlatformHelperTest, GetPlatformIndexByName_Valid_OK) { AZ::u32 platformIndex = AzFramework::PlatformHelper::GetPlatformIndexFromName(AzFramework::PlatformPC); EXPECT_EQ(platformIndex, AzFramework::PlatformId::PC); } TEST_F(PlatformHelperTest, GetPlatformIndexByName_Invalid_OK) { AZ::u32 platformIndex = AzFramework::PlatformHelper::GetPlatformIndexFromName("dummy"); EXPECT_EQ(platformIndex, -1); } TEST_F(PlatformHelperTest, GetServerPlatformIndexByName_Valid_OK) { AZ::u32 platformIndex = AzFramework::PlatformHelper::GetPlatformIndexFromName(AzFramework::PlatformServer); EXPECT_EQ(platformIndex, AzFramework::PlatformId::SERVER); }