BsScriptUnitTests.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "BsScriptUnitTests.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoMethod.h"
  5. #include "BsSceneObject.h"
  6. #include "BsScriptSceneObject.h"
  7. #include "BsManagedSerializableObject.h"
  8. #include "BsManagedSerializableDiff.h"
  9. namespace BansheeEngine
  10. {
  11. MonoMethod* ScriptUnitTests::RunTestsMethod;
  12. SPtr<ManagedSerializableDiff> ScriptUnitTests::tempDiff;
  13. void ScriptUnitTests::initRuntimeData()
  14. {
  15. metaData.scriptClass->addInternalCall("Internal_UT1_GameObjectClone", &ScriptUnitTests::internal_UT1_GameObjectClone);
  16. metaData.scriptClass->addInternalCall("Internal_UT3_GenerateDiff", &ScriptUnitTests::internal_UT3_GenerateDiff);
  17. metaData.scriptClass->addInternalCall("Internal_UT3_ApplyDiff", &ScriptUnitTests::internal_UT3_ApplyDiff);
  18. RunTestsMethod = metaData.scriptClass->getMethod("RunTests");
  19. }
  20. void ScriptUnitTests::runTests()
  21. {
  22. RunTestsMethod->invoke(nullptr, nullptr);
  23. }
  24. void ScriptUnitTests::internal_UT1_GameObjectClone(MonoObject* instance)
  25. {
  26. ScriptSceneObject* nativeInstance = ScriptSceneObject::toNative(instance);
  27. HSceneObject SO = static_object_cast<SceneObject>(nativeInstance->getNativeHandle());
  28. HSceneObject cloneSO = SO->clone();
  29. cloneSO->setParent(SO);
  30. }
  31. void ScriptUnitTests::internal_UT3_GenerateDiff(MonoObject* oldObj, MonoObject* newObj)
  32. {
  33. ManagedSerializableObjectPtr serializableOldObj = ManagedSerializableObject::createFromExisting(oldObj);
  34. ManagedSerializableObjectPtr serializableNewObj = ManagedSerializableObject::createFromExisting(newObj);
  35. tempDiff = ManagedSerializableDiff::create(serializableOldObj, serializableNewObj);
  36. }
  37. void ScriptUnitTests::internal_UT3_ApplyDiff(MonoObject* obj)
  38. {
  39. ManagedSerializableObjectPtr serializableObj = ManagedSerializableObject::createFromExisting(obj);
  40. tempDiff->apply(serializableObj);
  41. tempDiff = nullptr;
  42. }
  43. }