BsScriptUnitTests.cpp 2.1 KB

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