Fix tests in AzToolsFramework now that the Trace bus is hooked

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
Esteban Papp
2021-07-12 18:03:10 -07:00
parent c13720e255
commit 1dec9d4a9a
18 changed files with 77 additions and 46 deletions
@@ -54,6 +54,7 @@ namespace UnitTest
m_localFileIO = aznew AZ::IO::LocalFileIO();
m_priorFileIO = AZ::IO::FileIOBase::GetInstance();
AZ::IO::FileIOBase::SetInstance(nullptr);
AZ::IO::FileIOBase::SetInstance(m_localFileIO);
AZ::IO::FileIOBase::GetInstance()->SetAlias("@assets@", GetTestFolderPath().c_str());
@@ -175,6 +176,7 @@ namespace UnitTest
delete m_pcCatalog;
delete m_localFileIO;
m_localFileIO = nullptr;
AZ::IO::FileIOBase::SetInstance(nullptr);
AZ::IO::FileIOBase::SetInstance(m_priorFileIO);
m_application->Stop();
delete m_application;
@@ -266,7 +266,9 @@ namespace UnitTest
AZ::IO::SystemFile::SetWritable(filePath.c_str(), false);
// Attempt to save to the same file. Should not be allowed.
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_FALSE(m_assetSeedManager->Save(filePath));
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
// Clean up the test environment
AZ::IO::SystemFile::SetWritable(filePath.c_str(), true);
@@ -290,7 +292,9 @@ namespace UnitTest
AZ::IO::SystemFile::SetWritable(filePath.c_str(), false);
// Attempt to save to the same file. Should not be allowed.
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_FALSE(m_assetSeedManager->SaveAssetFileInfo(filePath, AzFramework::PlatformFlags::Platform_PC, {}));
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
// Clean up the test environment
AZ::IO::SystemFile::SetWritable(filePath.c_str(), true);
@@ -357,7 +361,9 @@ namespace UnitTest
m_assetSeedManager->AddSeedAsset(assets[2], AzFramework::PlatformFlags::Platform_PC);
// Step we are testing
AZ_TEST_START_TRACE_SUPPRESSION;
m_assetSeedManager->AddPlatformToAllSeeds(AzFramework::PlatformId::ANDROID_ID);
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
// Verification
AzFramework::PlatformFlags expectedPlatformFlags = AzFramework::PlatformFlags::Platform_PC | AzFramework::PlatformFlags::Platform_ANDROID;
@@ -493,7 +493,10 @@ namespace UnitTest
// Add placeholder component which implements component mode.
entity->CreateComponent<PlaceHolderComponent>();
AZ_TEST_START_TRACE_SUPPRESSION;
entity->Activate();
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -348,7 +348,6 @@ namespace UnitTest
EXPECT_FALSE(AzToolsFramework::ComponentPaletteUtil::ContainsEditableComponents(context, &Filter_IsTestComponent2, AZ::ComponentDescriptor::DependencyArrayType()));
// Reflect Test Component 2 for subsequent tests
Inspector_TestComponent2::Reflect(context);
m_application->RegisterComponentDescriptor(Inspector_TestComponent2Descriptor);
// Verify that there is now a component that satisfies the AppearsInGameComponentMenu filter without service dependency conditions
@@ -46,7 +46,7 @@ AZTEST_EXPORT int AZ_UNIT_TEST_HOOK_NAME(int argc, char** argv)
}
styleManager->initialize(&app, engineRootPath);
AZ::Test::printUnusedParametersWarning(argc, argv);
AZ::Test::addTestEnvironments({ new ToolsFrameworkHook });
AZ::Test::addTestEnvironments({ DEFAULT_UNIT_TEST_ENV, new ToolsFrameworkHook });
int result = RUN_ALL_TESTS();
styleManager.release();
return result;
@@ -23,8 +23,7 @@ namespace UnitTest
};
struct PerforceComponentFixture
: ::testing::Test
, TraceBusRedirector
: ScopedAllocatorSetupFixture
, SourceControlTest
{
@@ -40,7 +39,6 @@ namespace UnitTest
m_jobContext = aznew AZ::JobContext(*m_jobManager);
AZ::JobContext::SetGlobalContext(m_jobContext);
AZ::Debug::TraceMessageBus::Handler::BusConnect();
AZ::TickBus::AllowFunctionQueuing(true);
m_perforceComponent = AZStd::make_unique<MockPerforceComponent>();
@@ -52,8 +50,6 @@ namespace UnitTest
void TearDown() override
{
AZ::Debug::TraceMessageBus::Handler::BusDisconnect();
AZ::TickBus::AllowFunctionQueuing(false);
AZ::TickBus::ClearQueuedEvents();
@@ -246,7 +246,9 @@ namespace UnitTest
AzFramework::AssetSystem::NetworkAssetUpdateInterface* notificationInterface = AZ::Interface<AzFramework::AssetSystem::NetworkAssetUpdateInterface>::Get();
EXPECT_NE(notificationInterface, nullptr);
AZ_TEST_START_TRACE_SUPPRESSION;
auto* mockCatalog = new ::testing::NiceMock<PlatformAddressedAssetCatalogMessageTest>(AzFramework::PlatformId::ANDROID_ID);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
AZStd::unique_ptr< ::testing::NiceMock<PlatformAddressedAssetCatalogMessageTest>> catalogHolder;
catalogHolder.reset(mockCatalog);
@@ -13,7 +13,9 @@ namespace UnitTest
TEST_F(PrefabInstantiateTest, PrefabInstantiate_InstantiateInvalidTemplate_InstantiateFails)
{
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_FALSE(m_prefabSystemComponent->InstantiatePrefab(AzToolsFramework::Prefab::InvalidTemplateId));
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
}
TEST_F(PrefabInstantiateTest, PrefabInstantiate_NoNestingTemplate_InstantiateSucceeds)
@@ -68,8 +68,10 @@ namespace UnitTest
MockPrefabFileIOActionValidator mockIOActionValidator;
mockIOActionValidator.ReadPrefabDom(templateData.m_filePath, templatePrefabDom);
AZ_TEST_START_TRACE_SUPPRESSION;
templateData.m_id = m_prefabLoaderInterface->LoadTemplateFromFile(templateData.m_filePath);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
templateData.m_isLoadedWithErrors = true;
PrefabTestDataUtils::ValidateTemplateLoad(templateData);
@@ -115,7 +117,9 @@ namespace UnitTest
targetTemplateData.m_filePath, targetTemplatePrefabDom);
// Load target and source Templates and get their Ids.
AZ_TEST_START_TRACE_SUPPRESSION;
targetTemplateData.m_id = m_prefabLoaderInterface->LoadTemplateFromFile(targetTemplateData.m_filePath);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
sourceTemplateData.m_id = m_prefabSystemComponent->GetTemplateIdFromFilePath(sourceTemplateData.m_filePath);
// Because of cyclical dependency, the two Templates should be loaded with errors.
@@ -144,7 +148,9 @@ namespace UnitTest
MockPrefabFileIOActionValidator mockIOActionValidator;
mockIOActionValidator.ReadPrefabDom(templateData.m_filePath, templatePrefabDom);
AZ_TEST_START_TRACE_SUPPRESSION;
templateData.m_id = m_prefabLoaderInterface->LoadTemplateFromFile(templateData.m_filePath);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
PrefabTestDataUtils::ValidateTemplateLoad(templateData);
}
@@ -161,7 +167,9 @@ namespace UnitTest
MockPrefabFileIOActionValidator mockIOActionValidator;
mockIOActionValidator.ReadPrefabDom(templateData.m_filePath, templatePrefabDom);
AZ_TEST_START_TRACE_SUPPRESSION;
templateData.m_id = m_prefabLoaderInterface->LoadTemplateFromFile(templateData.m_filePath);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
PrefabTestDataUtils::ValidateTemplateLoad(templateData);
}
@@ -183,7 +191,9 @@ namespace UnitTest
templateInstanceData.m_source, PrefabTestDomUtils::CreatePrefabDom(),
AZ::IO::ResultCode::Success, AZ::IO::ResultCode::Error);
AZ_TEST_START_TRACE_SUPPRESSION;
templateData.m_id = m_prefabLoaderInterface->LoadTemplateFromFile(templateData.m_filePath);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
PrefabTestDataUtils::ValidateTemplateLoad(templateData);
}
@@ -279,8 +289,10 @@ namespace UnitTest
MockPrefabFileIOActionValidator mockIOActionValidator;
mockIOActionValidator.ReadPrefabDom(pathToCorruptedPrefab, corruptedPrefabContent);
AZ_TEST_START_TRACE_SUPPRESSION;
TemplateId templateId = m_prefabLoaderInterface->LoadTemplateFromFile(pathToCorruptedPrefab);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
EXPECT_EQ(templateId, AzToolsFramework::Prefab::InvalidTemplateId);
}
@@ -289,8 +301,10 @@ namespace UnitTest
{
PrefabDom emptyPrefabDom = PrefabTestDomUtils::CreatePrefabDom();
AZStd::string emptyPrefabDomStr = PrefabTestDomUtils::DomToString(emptyPrefabDom);
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_EQ(m_prefabLoaderInterface->LoadTemplateFromString(emptyPrefabDomStr, "|?<>"), AzToolsFramework::Prefab::InvalidTemplateId);
EXPECT_EQ(m_prefabLoaderInterface->LoadTemplateFromString(emptyPrefabDomStr, "notAFile/"), AzToolsFramework::Prefab::InvalidTemplateId);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
}
TEST_F(PrefabLoadTemplateTest, LoadTemplate_LoadFromString_LoadsEmptyPrefab)
@@ -318,9 +332,11 @@ namespace UnitTest
);
AZStd::string selfDependentPrefabStr = PrefabTestDomUtils::DomToString(selfDependentPrefab);
AZ_TEST_START_TRACE_SUPPRESSION;
templateData.m_id = m_prefabLoaderInterface->LoadTemplateFromString(
selfDependentPrefabStr,
templateData.m_filePath);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
templateData.m_isLoadedWithErrors = true;
@@ -330,7 +346,9 @@ namespace UnitTest
TEST_F(PrefabLoadTemplateTest, LoadTemplate_LoadFromString_CorruptedReturnsInvalidTemplateId)
{
AZStd::string corruptPrefab = "{ Corrupted PrefabDom";
AZ_TEST_START_TRACE_SUPPRESSION;
TemplateId templateId = m_prefabLoaderInterface->LoadTemplateFromString(corruptPrefab);
AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT;
EXPECT_EQ(templateId, AzToolsFramework::Prefab::InvalidTemplateId);
}
}
@@ -166,13 +166,29 @@ namespace UnitTest
if (expectedNestedInstanceDomInstances.has_value())
{
ASSERT_TRUE(actualNestedInstanceDomInstances.has_value());
for (auto instanceIterator = expectedNestedInstanceDomInstances->get().MemberBegin();
instanceIterator != expectedNestedInstanceDomInstances->get().MemberEnd(); ++instanceIterator)
if (expectedNestedInstanceDomInstances->get().IsArray())
{
ComparePrefabDoms(
instanceIterator->value,
PrefabDomUtils::FindPrefabDomValue(actualNestedInstanceDomInstances->get(), instanceIterator->name.GetString()),
shouldCompareLinkIds, shouldCompareContainerEntities);
ASSERT_TRUE(actualNestedInstanceDomInstances->get().IsArray());
const size_t arraySize = expectedNestedInstanceDomInstances->get().GetArray().Size();
for(size_t i = 0; i < arraySize; ++i)
{
ComparePrefabDoms(
expectedNestedInstanceDomInstances->get().GetArray()[i],
actualNestedInstanceDomInstances->get().GetArray()[i],
shouldCompareLinkIds, shouldCompareContainerEntities);
}
}
if (expectedNestedInstanceDomInstances->get().IsObject())
{
ASSERT_TRUE(actualNestedInstanceDomInstances->get().IsObject());
for (auto instanceIterator = expectedNestedInstanceDomInstances->get().MemberBegin();
instanceIterator != expectedNestedInstanceDomInstances->get().MemberEnd(); ++instanceIterator)
{
ComparePrefabDoms(
instanceIterator->value,
PrefabDomUtils::FindPrefabDomValue(actualNestedInstanceDomInstances->get(), instanceIterator->name.GetString()),
shouldCompareLinkIds, shouldCompareContainerEntities);
}
}
}
}
@@ -37,8 +37,7 @@ namespace UnitTest
};
class PrefabTestFixture
: public ToolsApplicationFixture,
public UnitTest::TraceBusRedirector
: public ToolsApplicationFixture
{
protected:
@@ -426,7 +426,9 @@ namespace UnitTest
AZStd::any keyString = AZStd::make_any<AZStd::string_view>("0");
EXPECT_FALSE(propertyTree.GetContainerItem("My New Int", key).IsSuccess());
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_FALSE(propertyTree.GetContainerItem("My New List", keyString).IsSuccess());
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
PropertyTreeEditor::PropertyAccessOutcome outcome = propertyTree.GetContainerItem("My New List", key);
EXPECT_TRUE(outcome.IsSuccess());
@@ -446,7 +448,9 @@ namespace UnitTest
AZStd::any value = AZStd::make_any<PropertyTreeEditorTester::PropertyTreeEditorNestedTester>(testUpdate);
EXPECT_FALSE(propertyTree.UpdateContainerItem("My New Int", key, value).IsSuccess());
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_FALSE(propertyTree.UpdateContainerItem("My New List", keyString, value).IsSuccess());
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
EXPECT_TRUE(propertyTree.UpdateContainerItem("My New List", key, value).IsSuccess());
PropertyTreeEditor::PropertyAccessOutcome outcome = propertyTree.GetContainerItem("My New List", key);
@@ -464,7 +468,9 @@ namespace UnitTest
AZStd::any keyString = AZStd::make_any<AZStd::string_view>("0");
EXPECT_FALSE(propertyTree.RemoveContainerItem("My New Int", key).IsSuccess());
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_FALSE(propertyTree.RemoveContainerItem("My New List", keyString).IsSuccess());
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
PropertyTreeEditor::PropertyAccessOutcome outcomeAdd1 = propertyTree.RemoveContainerItem("My New List", key);
EXPECT_TRUE(outcomeAdd1.IsSuccess());
@@ -755,7 +761,9 @@ namespace UnitTest
EXPECT_TRUE(propertyTree.SetProperty("My Int", anEmpty).IsSuccess());
EXPECT_TRUE(propertyTree.SetProperty("My Negative Short", anEmpty).IsSuccess());
EXPECT_TRUE(propertyTree.SetProperty("My New List", anEmpty).IsSuccess());
AZ_TEST_START_TRACE_SUPPRESSION;
EXPECT_TRUE(propertyTree.SetProperty("My Asset Data", anEmpty).IsSuccess());
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
EXPECT_TRUE(propertyTree.SetProperty("My Test Simple Asset", anEmpty).IsSuccess());
}
@@ -275,6 +275,7 @@ namespace UnitTest
TEST_F(SliceUpgradeTest, IntermmediateDataTypeChange)
{
TestDataA::Reflect(m_serializeContext.get());
AzToolsFramework::Components::EditorComponentBase::Reflect(m_serializeContext.get());
TestComponentA_V0::Reflect(m_serializeContext.get());
AZ::Entity* entityA = aznew AZ::Entity();
TestComponentA_V0* component = entityA->CreateComponent<TestComponentA_V0>();
@@ -320,6 +321,7 @@ namespace UnitTest
TEST_F(SliceUpgradeTest, TypeChangeInUnorderedMap)
{
TestDataB_V0::Reflect(m_serializeContext.get());
AzToolsFramework::Components::EditorComponentBase::Reflect(m_serializeContext.get());
TestComponentB_V0::Reflect(m_serializeContext.get());
AZ::Entity* entityA = aznew AZ::Entity();
TestComponentB_V0* componentB = entityA->CreateComponent<TestComponentB_V0>();
@@ -395,6 +397,7 @@ namespace UnitTest
TEST_F(SliceUpgradeTest, TypeChangeInVector)
{
TestDataB_V0::Reflect(m_serializeContext.get());
AzToolsFramework::Components::EditorComponentBase::Reflect(m_serializeContext.get());
TestComponentC_V0::Reflect(m_serializeContext.get());
AZ::Entity* entityA = aznew AZ::Entity();
TestComponentC_V0* componentC = entityA->CreateComponent<TestComponentC_V0>();
@@ -452,6 +455,7 @@ namespace UnitTest
TEST_F(SliceUpgradeTest, UpgradeSkipVersion_TypeChange_FloatToDouble)
{
// 1. Create an entity with a TestComponentE_V4 with the default value for m_data
AzToolsFramework::Components::EditorComponentBase::Reflect(m_serializeContext.get());
TestComponentE_V4::Reflect(m_serializeContext.get());
AZ::Entity* testEntity = aznew AZ::Entity();
TestComponentE_V4* componentEV4 = testEntity->CreateComponent<TestComponentE_V4>();
@@ -563,6 +567,7 @@ namespace UnitTest
SliceUpgradeTestAsset::Reflect(m_serializeContext.get());
AzFramework::SimpleAssetReference<SliceUpgradeTestAsset>::Register(*m_serializeContext.get());
AzToolsFramework::Components::EditorComponentBase::Reflect(m_serializeContext.get());
TestComponentD_V1::Reflect(m_serializeContext.get());
AZ::Entity* entity = aznew AZ::Entity();
entity->CreateComponent<TestComponentD_V1>();
@@ -20,7 +20,6 @@ namespace UnitTest
class ThumbnailerTests
: public ::testing::Test
, public TraceBusRedirector
{
protected:
void SetUp() override
@@ -31,8 +30,6 @@ namespace UnitTest
// was running, because the environment wasn't setup for it to save these settings.
AZ::UserSettingsComponentRequestBus::Broadcast(&AZ::UserSettingsComponentRequests::DisableSaveOnFinalize);
TraceBusRedirector::BusConnect();
AZStd::string entityName("test");
AZ::EntityId testEntityId;
AzToolsFramework::EditorEntityContextRequestBus::BroadcastResult(
@@ -61,8 +58,6 @@ namespace UnitTest
void TearDown() override
{
TraceBusRedirector::BusDisconnect();
AzToolsFramework::EditorEntityContextRequestBus::Broadcast(
&AzToolsFramework::EditorEntityContextRequestBus::Events::DestroyEditorEntity,
m_testEntity->GetId());
@@ -248,8 +248,6 @@ namespace AzToolsFramework
m_app.Stop();
AZ::Debug::TraceMessageBus::Handler::BusDisconnect();
}
// A few tests save a layer and want to check the state after saving.
@@ -975,7 +975,7 @@ namespace UnitTest
// AzToolsFramework::Components::TransformComponent
// Fixture base class for AzToolsFramework::Components::TransformComponent tests
class EditorTransformComponentTest
class OldEditorTransformComponentTest
: public ::testing::Test
{
protected:
@@ -1000,7 +1000,7 @@ namespace UnitTest
// Old TransformComponents used to store "Slice Root" entity Id, which could be its own Id.
// The version-converter could end up making an entity into its own transform parent.
// The EditorEntityFixupComponent should fix this up during slice instantiation.
TEST_F(EditorTransformComponentTest, OldSliceRoots_ShouldHaveNoParent)
TEST_F(OldEditorTransformComponentTest, OldSliceRoots_ShouldHaveNoParent)
{
const char kSliceData[] =
R"DELIMITER(<ObjectStream version="1">
@@ -127,7 +127,6 @@ namespace UnitTest
void SetUpEditorFixtureImpl() override
{
m_editor = new EntityPropertyEditor();
m_editorActions.Connect();
m_entity1 = CreateDefaultEditorEntity("Entity1");
m_entity2 = CreateDefaultEditorEntity("Entity2");
@@ -137,13 +136,11 @@ namespace UnitTest
void TearDownEditorFixtureImpl() override
{
m_editorActions.Disconnect();
delete m_editor;
}
public:
EntityPropertyEditor* m_editor;
TestEditorActions m_editorActions;
EntityIdList m_entityIds;
AZ::EntityId m_entity1;
AZ::EntityId m_entity2;
@@ -234,8 +231,6 @@ namespace UnitTest
entities.insert(m_levelEntity);
m_levelEditor->SetOverrideEntityIds(entities);
m_editorActions.Connect();
// Connect to the EditorRequestBus so that we can intercept calls checking whether or not a level is currently open.
AzToolsFramework::EditorRequestBus::Handler::BusConnect();
}
@@ -244,7 +239,6 @@ namespace UnitTest
{
AzToolsFramework::EditorRequestBus::Handler::BusDisconnect();
m_editorActions.Disconnect();
delete m_levelEditor;
}
@@ -258,7 +252,6 @@ namespace UnitTest
public:
EntityPropertyEditor* m_levelEditor;
TestEditorActions m_editorActions;
AZ::EntityId m_levelEntity;
bool m_levelOpen = false;
};
@@ -85,19 +85,8 @@ namespace UnitTest
}
class ViewportUiWidgetAssertFixture
: public ::testing::Test
, UnitTest::TraceBusRedirector
{
public:
void SetUp() override
{
AZ::Debug::TraceMessageBus::Handler::BusConnect();
}
void TearDown() override
{
AZ::Debug::TraceMessageBus::Handler::BusDisconnect();
}
};
: public ScopedAllocatorSetupFixture
{};
TEST_F(ViewportUiWidgetAssertFixture, RegisterUpdateCallbackDoesNotRegisterFunctionForNotAddedObject)
{