KineticStatus KineticPDU_GetStatus(KineticPDU* pdu) { KineticStatus status = KINETIC_STATUS_INVALID; if (pdu != NULL && pdu->command != NULL && pdu->command->status != NULL && pdu->command->status->has_code != false) { status = KineticProtoStatusCode_to_KineticStatus( pdu->command->status->code); } return status; }
void test_KineticProtoStatusCode_to_KineticStatus_should__map_from_internal_to_public_type(void) { TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_SUCCESS)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_CONNECTION_ERROR, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_REMOTE_CONNECTION_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DEVICE_BUSY, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_SERVICE_BUSY)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_INVALID_REQUEST)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_NOT_ATTEMPTED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_HEADER_REQUIRED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_NO_SUCH_HMAC_ALGORITHM)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_DATA_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_PERM_DATA_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_PERM_DATA_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_HMAC_FAILURE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_NOT_FOUND)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_VERSION_FAILURE, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_VERSION_MISMATCH)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_VERSION_FAILURE, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_VERSION_FAILURE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_INTERNAL_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_NOT_AUTHORIZED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_EXPIRED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_NO_SPACE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_NESTED_OPERATION_ERRORS)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID, KineticProtoStatusCode_to_KineticStatus(KINETIC_PROTO_STATUS_STATUS_CODE_INVALID_STATUS_CODE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID, KineticProtoStatusCode_to_KineticStatus(_KINETIC_PROTO_STATUS_STATUS_CODE_IS_INT_SIZE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID, KineticProtoStatusCode_to_KineticStatus((KineticProto_Status_StatusCode) (KINETIC_PROTO_STATUS_STATUS_CODE_NESTED_OPERATION_ERRORS + 100))); }
void test_KineticProtoStatusCode_to_KineticStatus_should_map_from_internal_to_public_type(void) { // These status codes have a one-to-one mapping for clarity TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_SUCCESS, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__SUCCESS)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_CONNECTION_ERROR, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__REMOTE_CONNECTION_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DEVICE_BUSY, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__SERVICE_BUSY)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_NOT_FOUND, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NOT_FOUND)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_CLUSTER_MISMATCH, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__VERSION_FAILURE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_VERSION_MISMATCH, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__VERSION_MISMATCH)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_HMAC_FAILURE, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__HMAC_FAILURE)); // End one-to-one mappings TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__INVALID_REQUEST)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NOT_ATTEMPTED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__HEADER_REQUIRED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID_REQUEST, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NO_SUCH_HMAC_ALGORITHM)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__DATA_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__PERM_DATA_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DATA_ERROR, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__PERM_DATA_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__INTERNAL_ERROR)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_NOT_AUTHORIZED, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NOT_AUTHORIZED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__EXPIRED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NO_SPACE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_OPERATION_FAILED, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NESTED_OPERATION_ERRORS)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_DEVICE_LOCKED, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__DEVICE_LOCKED)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID, KineticProtoStatusCode_to_KineticStatus(COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__INVALID_STATUS_CODE)); TEST_ASSERT_EQUAL_KineticStatus(KINETIC_STATUS_INVALID, KineticProtoStatusCode_to_KineticStatus((Com__Seagate__Kinetic__Proto__Command__Status__StatusCode) (COM__SEAGATE__KINETIC__PROTO__COMMAND__STATUS__STATUS_CODE__NESTED_OPERATION_ERRORS + 100))); }