diff --git a/Gems/Terrain/Code/Tests/SurfaceMaterialsListTest.cpp b/Gems/Terrain/Code/Tests/SurfaceMaterialsListTest.cpp new file mode 100644 index 0000000000..fb70b1366f --- /dev/null +++ b/Gems/Terrain/Code/Tests/SurfaceMaterialsListTest.cpp @@ -0,0 +1,73 @@ +/* + * Copyright (c) Contributors to the Open 3D Engine Project. + * For complete copyright and license terms please see the LICENSE at the root of this distribution. + * + * SPDX-License-Identifier: Apache-2.0 OR MIT + * + */ + +#include +#include +#include +#include +#include + +using ::testing::NiceMock; +using ::testing::AtLeast; +using ::testing::_; + +namespace UnitTest +{ + class TerrainSurfaceMaterialsListTest : public ::testing::Test + { + protected: + AZ::ComponentApplication m_app; + + void SetUp() override + { + AZ::ComponentApplication::Descriptor appDesc; + appDesc.m_memoryBlocksByteSize = 20 * 1024 * 1024; + appDesc.m_recordingMode = AZ::Debug::AllocationRecords::RECORD_NO_RECORDS; + appDesc.m_stackRecordLevels = 20; + + m_app.Create(appDesc); + } + + AZStd::unique_ptr CreateEntityWithShapeComponents() + { + auto entity = AZStd::make_unique(); + entity->Init(); + + auto shapeComponent = entity->CreateComponent(); + m_app.RegisterComponentDescriptor(shapeComponent->CreateDescriptor()); + + return entity; + } + + Terrain::TerrainSurfaceMaterialsListComponent* AddSurfaceMaterialListComponent(AZ::Entity* entity) + { + auto surfaceMaterialsListComponent = entity->CreateComponent(); + m_app.RegisterComponentDescriptor(surfaceMaterialsListComponent->CreateDescriptor()); + + return surfaceMaterialsListComponent; + } + + void TearDown() override + { + m_app.Destroy(); + } + }; + + TEST_F(TerrainSurfaceMaterialsListTest, SurfaceGradientListActivatesSuccessfully) + { + auto entity = CreateEntityWithShapeComponents(); + + AddSurfaceMaterialListComponent(entity.get()); + + entity->Activate(); + + EXPECT_EQ(entity->GetState(), AZ::Entity::State::Active); + + entity.reset(); + } +} // namespace UnitTest diff --git a/Gems/Terrain/Code/terrain_tests_files.cmake b/Gems/Terrain/Code/terrain_tests_files.cmake index 3ce1d05003..793bc01ac5 100644 --- a/Gems/Terrain/Code/terrain_tests_files.cmake +++ b/Gems/Terrain/Code/terrain_tests_files.cmake @@ -10,5 +10,6 @@ set(FILES Tests/TerrainTest.cpp Tests/TerrainSystemTest.cpp Tests/LayerSpawnerTests.cpp + Tests/SurfaceMaterialsListTest.cpp Tests/MockAxisAlignedBoxShapeComponent.h )