Add unit test for scripting event to ensure generated bindings code works fine
This commit is contained in:
@@ -21,7 +21,9 @@ TEST_CASE("Scripting")
|
||||
CHECK(object->Is<TestClassNative>());
|
||||
TestClassNative* testClass = (TestClassNative*)object;
|
||||
CHECK(testClass->SimpleField == 1);
|
||||
int32 methodResult = testClass->Test(TEXT("123"));
|
||||
CHECK(testClass->SimpleStruct.Object == nullptr);
|
||||
CHECK(testClass->SimpleStruct.Vector == Float3::One);
|
||||
int32 methodResult = testClass->TestMethod(TEXT("123"));
|
||||
CHECK(methodResult == 3);
|
||||
|
||||
// Test managed class
|
||||
@@ -34,7 +36,33 @@ TEST_CASE("Scripting")
|
||||
MObject* managed = testClass->GetOrCreateManagedInstance(); // Ensure to create C# object and run it's ctor
|
||||
CHECK(managed);
|
||||
CHECK(testClass->SimpleField == 2);
|
||||
methodResult = testClass->Test(TEXT("123"));
|
||||
CHECK(testClass->SimpleStruct.Object == testClass);
|
||||
CHECK(testClass->SimpleStruct.Vector == Float3::UnitX);
|
||||
methodResult = testClass->TestMethod(TEXT("123"));
|
||||
CHECK(methodResult == 6);
|
||||
}
|
||||
|
||||
SECTION("Test Event")
|
||||
{
|
||||
ScriptingTypeHandle type = Scripting::FindScriptingType("FlaxEngine.TestClassManaged");
|
||||
CHECK(type);
|
||||
ScriptingObject* object = Scripting::NewObject(type.GetType().ManagedClass);
|
||||
CHECK(object);
|
||||
MObject* managed = object->GetOrCreateManagedInstance(); // Ensure to create C# object and run it's ctor
|
||||
CHECK(managed);
|
||||
TestClassNative* testClass = (TestClassNative*)object;
|
||||
CHECK(testClass->SimpleField == 2);
|
||||
String str1 = TEXT("1");
|
||||
String str2 = TEXT("2");
|
||||
Array<TestStruct> arr1 = { testClass->SimpleStruct };
|
||||
Array<TestStruct> arr2 = { testClass->SimpleStruct };
|
||||
testClass->SimpleEvent(1, Float3::One, str1, str2, arr1, arr2);
|
||||
CHECK(testClass->SimpleField == 4);
|
||||
CHECK(str2 == TEXT("4"));
|
||||
CHECK(arr2.Count() == 2);
|
||||
CHECK(arr2[0].Vector == Float3::Half);
|
||||
CHECK(arr2[0].Object == nullptr);
|
||||
CHECK(arr2[1].Vector == testClass->SimpleStruct.Vector);
|
||||
CHECK(arr2[1].Object == testClass);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user