You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/LyShine/Code/Tests/LyShineTest.h

74 lines
1.9 KiB
C++

/*
* 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
*
*/
#pragma once
#include <AzCore/UnitTest/TestTypes.h>
#include <AzCore/Component/ComponentApplication.h>
#include <LyShineModule.h>
namespace UnitTest
{
class LyShineTest
: public ScopedAllocatorSetupFixture
{
protected:
LyShineTest()
: m_application()
, m_systemEntity(nullptr)
{
}
void SetUp() override
{
SetupApplication();
SetupEnvironment();
}
virtual void SetupApplication()
{
AZ::ComponentApplication::Descriptor appDesc;
appDesc.m_memoryBlocksByteSize = 10 * 1024 * 1024;
appDesc.m_recordingMode = AZ::Debug::AllocationRecords::RECORD_FULL;
appDesc.m_stackRecordLevels = 20;
m_systemEntity = m_application->Create(appDesc);
m_systemEntity->Init();
m_systemEntity->Activate();
}
virtual void SetupEnvironment()
{
m_env = AZStd::make_unique<StubEnv>();
memset(&m_env->m_stubEnv, 0, sizeof(SSystemGlobalEnvironment));
m_priorEnv = gEnv;
gEnv = &m_env->m_stubEnv;
}
void TearDown() override
{
m_env.reset();
gEnv = m_priorEnv;
m_application->Destroy();
delete m_application;
m_application = nullptr;
}
struct StubEnv
{
SSystemGlobalEnvironment m_stubEnv;
};
AZ::ComponentApplication* m_application = nullptr;
AZ::Entity* m_systemEntity = nullptr;
AZStd::unique_ptr<StubEnv> m_env;
SSystemGlobalEnvironment* m_priorEnv = nullptr;
};
} // namespace UnitTest