/*
* 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 "LmbrCentralReflectionTest.h"
#include "Shape/EditorCompoundShapeComponent.h"
namespace LmbrCentral
{
// Serialized legacy EditorCompoundShapeComponent v1.
const char kEditorCompoundComponentVersion1[] =
R"DELIMITER(
)DELIMITER";
class LoadEditorCompoundShapeComponentFromVersion1
: public LoadEditorComponentTest
{
protected:
const char* GetSourceDataBuffer() const override { return kEditorCompoundComponentVersion1; }
};
TEST_F(LoadEditorCompoundShapeComponentFromVersion1, Application_IsRunning)
{
ASSERT_NE(GetApplication(), nullptr);
}
TEST_F(LoadEditorCompoundShapeComponentFromVersion1, Components_Load)
{
EXPECT_NE(m_object.get(), nullptr);
}
TEST_F(LoadEditorCompoundShapeComponentFromVersion1, EditorComponent_Found)
{
EXPECT_EQ(m_entity->GetComponents().size(), 2);
EXPECT_NE(m_entity->FindComponent(m_object->GetId()), nullptr);
}
TEST_F(LoadEditorCompoundShapeComponentFromVersion1, HasChildId_Succeeds)
{
const AZ::u64 potentialIds[] = { 9,0,2,1,0 };
for (const AZ::u64 id : potentialIds)
{
bool hasReference = false;
LmbrCentral::CompoundShapeComponentHierarchyRequestsBus::EventResult(hasReference, m_entity->GetId(),
&LmbrCentral::CompoundShapeComponentHierarchyRequestsBus::Events::HasChildId, AZ::EntityId(id));
EXPECT_TRUE(hasReference);
}
}
TEST_F(LoadEditorCompoundShapeComponentFromVersion1, HasChildId_Fails)
{
const AZ::u64 potentialIds[] = { 8,6,7,5,3 };
for (const AZ::u64 id : potentialIds)
{
bool hasReference = false;
LmbrCentral::CompoundShapeComponentHierarchyRequestsBus::EventResult(hasReference, m_entity->GetId(),
&LmbrCentral::CompoundShapeComponentHierarchyRequestsBus::Events::HasChildId, AZ::EntityId(id));
EXPECT_FALSE(hasReference);
}
}
TEST_F(LoadEditorCompoundShapeComponentFromVersion1, ValidateChildIds_Succeeds)
{
bool valid = false;
LmbrCentral::CompoundShapeComponentHierarchyRequestsBus::EventResult(valid, m_entity->GetId(),
&LmbrCentral::CompoundShapeComponentHierarchyRequestsBus::Events::ValidateChildIds);
EXPECT_TRUE(valid);
}
}