#if ENABLE_UNIT_TESTS #include "UnitTest++.h" #include "../Cryptography-c-api.h" #include "../../Cryptography.h" static const uint32_t BUFFERSIZE = 16; struct CryptoFixture { CryptoFixture() { il2cpp::os::Cryptography::OpenCryptographyProvider(); apiCryptoProvider = UnityPalGetCryptographyProvider(); classCryptoProvider = il2cpp::os::Cryptography::GetCryptographyProvider(); } ~CryptoFixture() { UnityPalReleaseCryptographyProvider(apiCryptoProvider); il2cpp::os::Cryptography::ReleaseCryptographyProvider(classCryptoProvider); } void* apiCryptoProvider; void* classCryptoProvider; unsigned char data[BUFFERSIZE]; }; SUITE(Cryptography) { TEST_FIXTURE(CryptoFixture, GetCryptographyProviderHasValidPointer) { CHECK_NOT_NULL(apiCryptoProvider); } TEST_FIXTURE(CryptoFixture, ApiHasValidPointers) { CHECK_NOT_NULL(apiCryptoProvider); } TEST_FIXTURE(CryptoFixture, ClassHasValidPointers) { CHECK_NOT_NULL(classCryptoProvider); } TEST_FIXTURE(CryptoFixture, FillRandomBytesReturnsSuccess) { CHECK(UnityPalCryptographyFillBufferWithRandomBytes(apiCryptoProvider, BUFFERSIZE, data)); } TEST_FIXTURE(CryptoFixture, ApiFillRandomBytesReturnMatchesClassReturn) { CHECK_EQUAL((int32_t)il2cpp::os::Cryptography::FillBufferWithRandomBytes(classCryptoProvider, BUFFERSIZE, data), UnityPalCryptographyFillBufferWithRandomBytes(apiCryptoProvider, BUFFERSIZE, data)); } TEST(FillRandomBytesWillBadProviderFails) { void* badCryptoProvider = NULL; unsigned char* badBuffer = NULL; CHECK(!UnityPalCryptographyFillBufferWithRandomBytes(badCryptoProvider, BUFFERSIZE, badBuffer)); } } #endif // ENABLE_UNIT_TESTS