void test_KineticClient_GetKeyRange_should_return_a_list_of_keys_within_the_specified_range(void) { ByteBuffer_AppendCString(&StartKey, "key_range_00_00"); ByteBuffer_AppendCString(&EndKey, "key_range_00_03"); KineticKeyRange keyRange = { .startKey = StartKey, .endKey = EndKey, .startKeyInclusive = true, .endKeyInclusive = true, .maxReturned = MAX_KEYS_RETRIEVED, .reverse = false, }; ByteBufferArray keyArray = { .buffers = &Keys[0], .count = MAX_KEYS_RETRIEVED }; KineticOperation operation; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildGetKeyRange_ExpectAndReturn(&operation, &keyRange, &keyArray, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_BUFFER_OVERRUN); KineticStatus status = KineticClient_GetKeyRange(&Session, &keyRange, &keyArray, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_BUFFER_OVERRUN, status); }
void test_KineticClient_Get_should_execute_GET_operation(void) { uint8_t KeyData[64]; ByteArray Key = ByteArray_Create(KeyData, sizeof(KeyData)); ByteBuffer KeyBuffer = ByteBuffer_CreateWithArray(Key); uint8_t ValueData[64]; ByteArray Value = ByteArray_Create(ValueData, sizeof(ValueData)); ByteBuffer ValueBuffer = ByteBuffer_CreateWithArray(Value); ByteBuffer_AppendDummyData(&KeyBuffer, Key.len); KineticEntry entry = { .key = KeyBuffer, .value = ValueBuffer, }; KineticOperation operation; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildGet_ExpectAndReturn(&operation, &entry, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_CLUSTER_MISMATCH); KineticStatus status = KineticClient_Get(&Session, &entry, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_CLUSTER_MISMATCH, status); }
void test_KineticClient_flush_should_expose_memory_error_from_CreateOperation(void) { KineticSession session; KineticAllocator_NewOperation_ExpectAndReturn(&session, NULL); KineticStatus status = KineticClient_Flush(&session, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_MEMORY_ERROR, status); }
void test_KineticClient_flush_should_get_success_if_no_writes_are_in_progress(void) { KineticOperation operation; KineticSession session; KineticAllocator_NewOperation_ExpectAndReturn(&session, &operation); KineticBuilder_BuildFlush_ExpectAndReturn(&operation, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticClient_Flush(&session, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, status); }
void test_KineticClient_P2POperation_should_execute_a_p2p_operation(void) { KineticSession session; KineticOperation operation; KineticP2P_Operation p2pOp; KineticAllocator_NewOperation_ExpectAndReturn(&session, &operation); KineticBuilder_BuildP2POperation_ExpectAndReturn(&operation, &p2pOp, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticClient_P2POperation(&session, &p2pOp, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, status); }
void test_KineticAdminClient_SetACL_should_set_an_ACL(void) { KineticOperation operation; const char *ACL_path = TEST_DIR("ex1.json"); KineticACL_LoadFromFile_ExpectAndReturn(ACL_path, &ACLs, ACL_OK); KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildSetACL_ExpectAndReturn(&operation, ACLs, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticAdminClient_SetACL(&Session, ACL_path); TEST_ASSERT_EQUAL(KINETIC_STATUS_SUCCESS, status); }
void test_KineticAdminClient_GetLog_should_request_the_specified_log_data_from_the_device(void) { KineticLogInfo* info; KineticOperation operation; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildGetLog_ExpectAndReturn(&operation, KINETIC_DEVICE_INFO_TYPE_UTILIZATIONS, BYTE_ARRAY_NONE, &info, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticAdminClient_GetLog(&Session, KINETIC_DEVICE_INFO_TYPE_UTILIZATIONS, &info, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, status); }
void test_KineticClient_Put_should_execute_PUT_operation(void) { ByteArray value = ByteArray_CreateWithCString("Four score, and seven years ago"); KineticEntry entry = {.value = ByteBuffer_CreateWithArray(value)}; KineticOperation operation; operation.session = &Session; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildPut_ExpectAndReturn(&operation, &entry, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_VERSION_MISMATCH); KineticStatus status = KineticClient_Put(&Session, &entry, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_VERSION_MISMATCH, status); }
void test_KineticAdminClient_GetDeviceSpecificLog_should_request_the_specified_device_specific_log_data_from_the_device(void) { const char* nameData = "com.Seagate"; ByteArray name = ByteArray_CreateWithCString(nameData); KineticLogInfo* info; KineticOperation operation; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildGetLog_ExpectAndReturn(&operation, COM__SEAGATE__KINETIC__PROTO__COMMAND__GET_LOG__TYPE__DEVICE, name, &info, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticAdminClient_GetDeviceSpecificLog(&Session, name, &info, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, status); }
void test_KineticClient_GetPrevious_should_expose_memory_errors(void) { uint8_t key[] = "schlage"; ByteBuffer KeyBuffer = ByteBuffer_Create(key, sizeof(key), sizeof(key)); uint8_t value[1024]; ByteBuffer ValueBuffer = ByteBuffer_Create(value, sizeof(value), 0); KineticEntry entry = { .key = KeyBuffer, .value = ValueBuffer, }; KineticAllocator_NewOperation_ExpectAndReturn(&Session, NULL); KineticStatus status = KineticClient_GetPrevious(&Session, &entry, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_MEMORY_ERROR, status); }
void test_KineticClient_GetPrevious_should_execute_GETNEXT(void) { uint8_t key[] = "schlage"; ByteBuffer KeyBuffer = ByteBuffer_Create(key, sizeof(key), sizeof(key)); uint8_t value[1024]; ByteBuffer ValueBuffer = ByteBuffer_Create(value, sizeof(value), 0); KineticEntry entry = { .key = KeyBuffer, .value = ValueBuffer, }; KineticOperation operation; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildGetPrevious_ExpectAndReturn(&operation, &entry, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticClient_GetPrevious(&Session, &entry, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, status); }
void test_KineticClient_Get_should_execute_GET_operation_and_retrieve_only_metadata(void) { uint8_t KeyData[64]; ByteArray Key = ByteArray_Create(KeyData, sizeof(KeyData)); ByteBuffer KeyBuffer = ByteBuffer_CreateWithArray(Key); ByteBuffer_AppendDummyData(&KeyBuffer, Key.len); KineticEntry entry = { .key = KeyBuffer, .metadataOnly = true, }; KineticOperation operation; KineticAllocator_NewOperation_ExpectAndReturn(&Session, &operation); KineticBuilder_BuildGet_ExpectAndReturn(&operation, &entry, KINETIC_STATUS_SUCCESS); KineticController_ExecuteOperation_ExpectAndReturn(&operation, NULL, KINETIC_STATUS_SUCCESS); KineticStatus status = KineticClient_Get(&Session, &entry, NULL); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, status); }