// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. #ifdef __cplusplus #include #include #else #include #include #endif #include "testrunnerswitcher.h" #include "azure_c_shared_utility/uniqueid.h" #include static TEST_MUTEX_HANDLE g_testByTest; TEST_DEFINE_ENUM_TYPE(UNIQUEID_RESULT, UNIQUEID_RESULT_VALUES); #define BUFFER_SIZE 37 BEGIN_TEST_SUITE(uniqueid_unittests) TEST_SUITE_INITIALIZE(suite_init) { g_testByTest = TEST_MUTEX_CREATE(); ASSERT_IS_NOT_NULL(g_testByTest); } TEST_SUITE_CLEANUP(suite_cleanup) { TEST_MUTEX_DESTROY(g_testByTest); } TEST_FUNCTION_INITIALIZE(TestMethodInitialize) { if (TEST_MUTEX_ACQUIRE(g_testByTest)) { ASSERT_FAIL("our mutex is ABANDONED. Failure in test framework"); } } TEST_FUNCTION_CLEANUP(TestMethodCleanup) { TEST_MUTEX_RELEASE(g_testByTest); } /* UniqueId_Generate */ /* Tests_SRS_UNIQUEID_07_002: [If uid is NULL then UniqueId_Generate shall return UNIQUEID_INVALID_ARG] */ TEST_FUNCTION(UniqueId_Generate_UID_NULL_Fail) { //Arrange //Act UNIQUEID_RESULT result = UniqueId_Generate(NULL, BUFFER_SIZE); //Assert ASSERT_ARE_EQUAL(UNIQUEID_RESULT, UNIQUEID_INVALID_ARG, result); } /* Tests_SRS_UNIQUEID_07_003: [If len is less then 37 then UniqueId_Generate shall return UNIQUEID_INVALID_ARG] */ TEST_FUNCTION(UniqueId_Generate_Len_too_small_Fail) { //Arrange char uid[BUFFER_SIZE]; //Act UNIQUEID_RESULT result = UniqueId_Generate(uid, BUFFER_SIZE/2); //Assert ASSERT_ARE_EQUAL(UNIQUEID_RESULT, UNIQUEID_INVALID_ARG, result); } /* Tests_SRS_UNIQUEID_07_001: [UniqueId_Generate shall create a unique Id 36 character long string.] */ TEST_FUNCTION(UniqueId_Generate_Succeed) { //Arrange char uid[BUFFER_SIZE]; //Act UNIQUEID_RESULT result = UniqueId_Generate(uid, BUFFER_SIZE); //Assert ASSERT_ARE_EQUAL(UNIQUEID_RESULT, UNIQUEID_OK, result); ASSERT_ARE_EQUAL(size_t, 36, strlen(uid) ); } END_TEST_SUITE(uniqueid_unittests)