Add Ground Zero terrain pipeline and playable assets
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
// Copyright Pacificao. All Rights Reserved.
|
||||
|
||||
#if WITH_EDITOR && WITH_DEV_AUTOMATION_TESTS
|
||||
|
||||
#include "AgrarianEditorAutomationLibrary.h"
|
||||
#include "HAL/PlatformTime.h"
|
||||
#include "Misc/AutomationTest.h"
|
||||
#include "Tests/AutomationEditorCommon.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
constexpr const TCHAR* ShelterClassPath = TEXT("/Game/Agrarian/Blueprints/Structures/BP_PrimitiveShelter.BP_PrimitiveShelter_C");
|
||||
constexpr const TCHAR* PersistenceTestSlot = TEXT("AgrarianAutomationPersistence");
|
||||
|
||||
class FAgrarianCreateBlankMapCommand final : public IAutomationLatentCommand
|
||||
{
|
||||
public:
|
||||
explicit FAgrarianCreateBlankMapCommand(FAutomationTestBase* InTest)
|
||||
: Test(InTest)
|
||||
{
|
||||
}
|
||||
|
||||
virtual bool Update() override
|
||||
{
|
||||
UWorld* EditorWorld = FAutomationEditorCommonUtils::CreateNewMap();
|
||||
if (!EditorWorld && Test)
|
||||
{
|
||||
Test->AddError(TEXT("Could not create blank editor map for persistence subsystem test"));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
FAutomationTestBase* Test = nullptr;
|
||||
};
|
||||
|
||||
class FAgrarianWaitSecondsCommand final : public IAutomationLatentCommand
|
||||
{
|
||||
public:
|
||||
explicit FAgrarianWaitSecondsCommand(const double InWaitSeconds)
|
||||
: EndTime(FPlatformTime::Seconds() + InWaitSeconds)
|
||||
{
|
||||
}
|
||||
|
||||
virtual bool Update() override
|
||||
{
|
||||
return FPlatformTime::Seconds() >= EndTime;
|
||||
}
|
||||
|
||||
private:
|
||||
double EndTime = 0.0;
|
||||
};
|
||||
|
||||
class FAgrarianRunPersistenceSubsystemCommand final : public IAutomationLatentCommand
|
||||
{
|
||||
public:
|
||||
explicit FAgrarianRunPersistenceSubsystemCommand(FAutomationTestBase* InTest)
|
||||
: Test(InTest)
|
||||
{
|
||||
}
|
||||
|
||||
virtual bool Update() override
|
||||
{
|
||||
if (!Test)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
UClass* ShelterClass = StaticLoadClass(AActor::StaticClass(), nullptr, ShelterClassPath);
|
||||
if (!ShelterClass)
|
||||
{
|
||||
Test->AddError(FString::Printf(TEXT("Could not load shelter class: %s"), ShelterClassPath));
|
||||
return true;
|
||||
}
|
||||
|
||||
const FString Result = UAgrarianEditorAutomationLibrary::RunPersistenceSubsystemSmokeTest(ShelterClass, PersistenceTestSlot);
|
||||
if (!Result.StartsWith(TEXT("PASS:")))
|
||||
{
|
||||
Test->AddError(Result);
|
||||
return true;
|
||||
}
|
||||
|
||||
Test->AddInfo(Result);
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
FAutomationTestBase* Test = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(
|
||||
FAgrarianPersistenceSubsystemAutomationTest,
|
||||
"Agrarian.PersistenceSubsystem.LiveGameInstance",
|
||||
EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter)
|
||||
|
||||
bool FAgrarianPersistenceSubsystemAutomationTest::RunTest(const FString& Parameters)
|
||||
{
|
||||
ADD_LATENT_AUTOMATION_COMMAND(FAgrarianCreateBlankMapCommand(this));
|
||||
ADD_LATENT_AUTOMATION_COMMAND(FStartPIECommand(true));
|
||||
ADD_LATENT_AUTOMATION_COMMAND(FAgrarianWaitSecondsCommand(1.0));
|
||||
ADD_LATENT_AUTOMATION_COMMAND(FAgrarianRunPersistenceSubsystemCommand(this));
|
||||
ADD_LATENT_AUTOMATION_COMMAND(FEndPlayMapCommand());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user