12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include <gtest/gtest.h>
- #include "console/script.h"
- #include "T3D/fx/particle.h"
- #include "T3D/gameBase/gameBase.h"
- TEST(DatablockTest, Datablocks_Can_Be_Overridden)
- {
- Con::EvalResult result = Con::evaluatef(R"(
- datablock SimDataBlock(testDb) {
- foo = 2;
- };
- datablock SimDataBlock(testDb) {
- foo = 3;
- };
- return testDb.foo;
- )", false, "datablockTest.cpp");
- ASSERT_TRUE(result.valid);
- // Successfully overrode the datablock
- EXPECT_STREQ(result.value, "3");
- }
- TEST(DatablockTest, Datablocks_Must_Not_Change_Type)
- {
- Con::EvalResult result = Con::evaluatef(R"(
- datablock SimDataBlock(testDb) {
- foo = 2;
- };
- datablock ParticleData(testDb) {
- foo = 3;
- };
- return testDb.foo;
- )", false, "datablockTest.cpp");
- // Not a syntax error
- ASSERT_TRUE(result.valid);
- // Did not override the datablock
- EXPECT_STREQ(result.value, "2");
- }
- TEST(DatablockTest, Datablock_Can_Substitute_String)
- {
- Con::EvalResult result = Con::evaluatef(R"(
- datablock ParticleData(testDb) {
- lifetimeMS = "$$ %%%%.bar";
- };
- $simObj = new GameBase(testObj) {
- bar = 1234;
- };
- return "done";
- )", false, "datablockTest.cpp");
- EXPECT_TRUE(result.valid);
- EXPECT_STREQ(result.value, "done");
- ParticleData* testDb = NULL;
- Sim::findObject("testDb", testDb);
- GameBase* testObj = NULL;
- Sim::findObject("testObj", testObj);
- testDb->performSubstitutions(testDb, testObj);
- EXPECT_EQ(testDb->lifetimeMS, 1234);
- }
|