#if ENABLE_UNIT_TESTS #if IL2CPP_TARGET_WINDOWS #include "UnitTest++.h" #include "../COM-c-api.h" #include "../../COM.h" SUITE(Com) { struct ComFixture { ComFixture() { int dimCount = 1; int elemSize = 2; safeBound.element_count = 123; safeBound.lower_bound = 0; safeArray = UnityPalCOMSafeArrayCreate(IL2CPP_VT_BOOL, dimCount, &safeBound); UnityPalCOMVariantInit(&classVariant); UnityPalCOMVariantInit(&classVariant); } ~ComFixture() { UnityPalCOMSafeArrayDestroy(safeArray); } Il2CppSafeArrayBound safeBound; UnityPalIl2CppSafeArray* safeArray; Il2CppVariant apiVariant; Il2CppVariant classVariant; }; TEST_FIXTURE(ComFixture, SafeArrayCreateNotNull) { CHECK_NOT_NULL(safeArray); } TEST_FIXTURE(ComFixture, SafeArrayCreateDimensionsValid) { CHECK_EQUAL(dimCount, safeArray->dimension_count); } TEST_FIXTURE(ComFixture, SafeArrayCreateBoundsElementCountIsValid) { CHECK_EQUAL(safeBound.element_count, safeArray->bounds->element_count); } TEST(SafeArrayCreateBoundsElementSizeValid) { CHECK_EQUAL(elemSize, safeArray->element_size); } TEST(SafeArrayDestroyReturnsSuccess) { UnityPalIl2CppSafeArray* tempArray; tempArray = il2cpp::os::COM::SafeArrayCreate(IL2CPP_VT_BOOL, dimCount, &safeBound); CHECK_EQUAL(IL2CPP_S_OK, UnityPalCOMSafeArrayDestroy(tempArray)); } TEST(VariantClearReturnsSuccess) { CHECK_EQUAL(IL2CPP_S_OK, UnityPalCOMVariantClear(&apiVariant)); } TEST(ApiVariantClearMatchesClassResult) { CHECK_EQUAL(il2cpp::os::COM::VariantClear(&classVariant), UnityPalCOMVariantClear(&apiVariant)); } } #endif // IL2CPP_TARGET_WINDOWS #endif // ENABLE_UNIT_TESTS