bandwidth-sdk 10.3.0 → 11.0.0.pre.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +9 -0
- data/Gemfile.lock +77 -0
- data/README.md +197 -139
- data/Rakefile +22 -0
- data/bandwidth-sdk.gemspec +40 -0
- data/bandwidth.yml +5544 -0
- data/docs/AccountStatistics.md +20 -0
- data/docs/AnswerCallback.md +44 -0
- data/docs/BridgeCompleteCallback.md +48 -0
- data/docs/BridgeTargetCompleteCallback.md +42 -0
- data/docs/CallDirectionEnum.md +15 -0
- data/docs/CallRecordingMetadata.md +52 -0
- data/docs/CallState.md +52 -0
- data/docs/CallStateEnum.md +15 -0
- data/docs/CallbackMethodEnum.md +15 -0
- data/docs/CallsApi.md +304 -0
- data/docs/CodeRequest.md +28 -0
- data/docs/Conference.md +32 -0
- data/docs/ConferenceCompletedCallback.md +26 -0
- data/docs/ConferenceCreatedCallback.md +26 -0
- data/docs/ConferenceMember.md +28 -0
- data/docs/ConferenceMemberExitCallback.md +32 -0
- data/docs/ConferenceMemberJoinCallback.md +32 -0
- data/docs/ConferenceRecordingAvailableCallback.md +44 -0
- data/docs/ConferenceRecordingMetadata.md +38 -0
- data/docs/ConferenceRedirectCallback.md +26 -0
- data/docs/ConferenceStateEnum.md +15 -0
- data/docs/ConferencesApi.md +688 -0
- data/docs/CreateCall.md +54 -0
- data/docs/CreateCallResponse.md +58 -0
- data/docs/CreateLookupResponse.md +20 -0
- data/docs/CreateMessageRequestError.md +22 -0
- data/docs/CreateParticipantRequest.md +24 -0
- data/docs/CreateParticipantResponse.md +20 -0
- data/docs/DeferredResult.md +20 -0
- data/docs/DeviceApiVersionEnum.md +15 -0
- data/docs/DisconenctCallback.md +50 -0
- data/docs/DisconnectCallback.md +50 -0
- data/docs/Diversion.md +30 -0
- data/docs/DtmfCallback.md +50 -0
- data/docs/FieldError.md +20 -0
- data/docs/FileFormatEnum.md +15 -0
- data/docs/ForbiddenRequest.md +18 -0
- data/docs/GatherCallback.md +52 -0
- data/docs/InboundMessageCallback.md +26 -0
- data/docs/InboundMessageCallbackMessage.md +40 -0
- data/docs/InitiateCallback.md +40 -0
- data/docs/ListMessageDirectionEnum.md +15 -0
- data/docs/ListMessageItem.md +48 -0
- data/docs/LookupRequest.md +18 -0
- data/docs/LookupResult.md +34 -0
- data/docs/LookupStatus.md +24 -0
- data/docs/LookupStatusEnum.md +15 -0
- data/docs/MFAApi.md +226 -0
- data/docs/MachineDetectionCompleteCallback.md +44 -0
- data/docs/MachineDetectionConfiguration.md +46 -0
- data/docs/MachineDetectionModeEnum.md +15 -0
- data/docs/Media.md +22 -0
- data/docs/MediaApi.md +307 -0
- data/docs/Message.md +40 -0
- data/docs/MessageDeliveredCallback.md +26 -0
- data/docs/MessageDeliveredCallbackMessage.md +40 -0
- data/docs/MessageDirectionEnum.md +15 -0
- data/docs/MessageFailedCallback.md +28 -0
- data/docs/MessageFailedCallbackMessage.md +40 -0
- data/docs/MessageRequest.md +32 -0
- data/docs/MessageSendingCallback.md +26 -0
- data/docs/MessageSendingCallbackMessage.md +40 -0
- data/docs/MessageStatusEnum.md +15 -0
- data/docs/MessageTypeEnum.md +15 -0
- data/docs/MessagesApi.md +179 -0
- data/docs/MessagesList.md +22 -0
- data/docs/MessagingCodeResponse.md +18 -0
- data/docs/MessagingRequestError.md +20 -0
- data/docs/MfaForbiddenRequestError.md +18 -0
- data/docs/MfaRequestError.md +20 -0
- data/docs/MfaUnauthorizedRequestError.md +18 -0
- data/docs/PageInfo.md +24 -0
- data/docs/Participant.md +30 -0
- data/docs/ParticipantSubscription.md +20 -0
- data/docs/ParticipantsApi.md +227 -0
- data/docs/PhoneNumberLookupApi.md +153 -0
- data/docs/PriorityEnum.md +15 -0
- data/docs/PublishPermissionsEnum.md +15 -0
- data/docs/RecordingAvailableCallback.md +60 -0
- data/docs/RecordingCompleteCallback.md +60 -0
- data/docs/RecordingStateEnum.md +15 -0
- data/docs/RecordingsApi.md +758 -0
- data/docs/RedirectCallback.md +48 -0
- data/docs/RedirectMethodEnum.md +15 -0
- data/docs/RequestError.md +20 -0
- data/docs/Session.md +20 -0
- data/docs/SessionsApi.md +605 -0
- data/docs/StatisticsApi.md +78 -0
- data/docs/StirShaken.md +22 -0
- data/docs/Subscriptions.md +20 -0
- data/docs/Tag.md +20 -0
- data/docs/TnLookupRequestError.md +18 -0
- data/docs/TranscribeRecording.md +28 -0
- data/docs/Transcription.md +20 -0
- data/docs/TranscriptionAvailableCallback.md +58 -0
- data/docs/TranscriptionList.md +18 -0
- data/docs/TranscriptionMetadata.md +24 -0
- data/docs/TransferAnswerCallback.md +46 -0
- data/docs/TransferCompleteCallback.md +52 -0
- data/docs/TransferDisconnectCallback.md +56 -0
- data/docs/UnauthorizedRequest.md +18 -0
- data/docs/UpdateCall.md +36 -0
- data/docs/UpdateCallRecording.md +18 -0
- data/docs/UpdateConference.md +34 -0
- data/docs/UpdateConferenceMember.md +22 -0
- data/docs/VerifyCodeRequest.md +24 -0
- data/docs/VerifyCodeResponse.md +18 -0
- data/docs/VoiceApiError.md +22 -0
- data/docs/VoiceCodeResponse.md +18 -0
- data/git_push.sh +57 -0
- data/lib/bandwidth-sdk/api/calls_api.rb +325 -0
- data/lib/bandwidth-sdk/api/conferences_api.rb +717 -0
- data/lib/bandwidth-sdk/api/media_api.rb +312 -0
- data/lib/bandwidth-sdk/api/messages_api.rb +198 -0
- data/lib/bandwidth-sdk/api/mfa_api.rb +244 -0
- data/lib/bandwidth-sdk/api/phone_number_lookup_api.rb +165 -0
- data/lib/bandwidth-sdk/api/recordings_api.rb +782 -0
- data/lib/bandwidth-sdk/api/statistics_api.rb +85 -0
- data/lib/bandwidth-sdk/api_client.rb +428 -0
- data/lib/bandwidth-sdk/api_error.rb +58 -0
- data/lib/bandwidth-sdk/configuration.rb +589 -0
- data/lib/bandwidth-sdk/models/account_statistics.rb +230 -0
- data/lib/bandwidth-sdk/models/answer_callback.rb +376 -0
- data/lib/bandwidth-sdk/models/bridge_complete_callback.rb +397 -0
- data/lib/bandwidth-sdk/models/bridge_target_complete_callback.rb +365 -0
- data/lib/bandwidth-sdk/models/bxml/bxml.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/nestable_verb.rb +50 -0
- data/lib/bandwidth-sdk/models/bxml/response.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/root.rb +47 -0
- data/lib/bandwidth-sdk/models/bxml/verb.rb +51 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/bridge.rb +30 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/conference.rb +31 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/forward.rb +22 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/gather.rb +44 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/hangup.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/pause.rb +17 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/pause_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/phone_number.rb +28 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/play_audio.rb +19 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/record.rb +34 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/redirect.rb +25 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/resume_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/ring.rb +18 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/send_dtmf.rb +19 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb +29 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/speak_sentence.rb +27 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_gather.rb +21 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_recording.rb +26 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_stream.rb +30 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_gather.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_stream.rb +17 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stream_param.rb +18 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/tag.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/transfer.rb +36 -0
- data/lib/bandwidth-sdk/models/call_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/call_recording_metadata.rb +411 -0
- data/lib/bandwidth-sdk/models/call_state.rb +423 -0
- data/lib/bandwidth-sdk/models/call_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/callback_method_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/code_request.rb +427 -0
- data/lib/bandwidth-sdk/models/conference.rb +320 -0
- data/lib/bandwidth-sdk/models/conference_completed_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_created_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_member.rb +273 -0
- data/lib/bandwidth-sdk/models/conference_member_exit_callback.rb +292 -0
- data/lib/bandwidth-sdk/models/conference_member_join_callback.rb +292 -0
- data/lib/bandwidth-sdk/models/conference_recording_available_callback.rb +374 -0
- data/lib/bandwidth-sdk/models/conference_recording_metadata.rb +342 -0
- data/lib/bandwidth-sdk/models/conference_redirect_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/create_call.rb +651 -0
- data/lib/bandwidth-sdk/models/create_call_response.rb +552 -0
- data/lib/bandwidth-sdk/models/create_lookup_response.rb +252 -0
- data/lib/bandwidth-sdk/models/create_message_request_error.rb +249 -0
- data/lib/bandwidth-sdk/models/deferred_result.rb +228 -0
- data/lib/bandwidth-sdk/models/disconenct_callback.rb +407 -0
- data/lib/bandwidth-sdk/models/disconnect_callback.rb +407 -0
- data/lib/bandwidth-sdk/models/diversion.rb +280 -0
- data/lib/bandwidth-sdk/models/dtmf_callback.rb +405 -0
- data/lib/bandwidth-sdk/models/field_error.rb +230 -0
- data/lib/bandwidth-sdk/models/file_format_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/gather_callback.rb +415 -0
- data/lib/bandwidth-sdk/models/inbound_message_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/inbound_message_callback_message.rb +399 -0
- data/lib/bandwidth-sdk/models/initiate_callback.rb +350 -0
- data/lib/bandwidth-sdk/models/list_message_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/list_message_item.rb +394 -0
- data/lib/bandwidth-sdk/models/lookup_request.rb +227 -0
- data/lib/bandwidth-sdk/models/lookup_result.rb +301 -0
- data/lib/bandwidth-sdk/models/lookup_status.rb +276 -0
- data/lib/bandwidth-sdk/models/lookup_status_enum.rb +42 -0
- data/lib/bandwidth-sdk/models/machine_detection_complete_callback.rb +376 -0
- data/lib/bandwidth-sdk/models/machine_detection_configuration.rb +500 -0
- data/lib/bandwidth-sdk/models/machine_detection_mode_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/media.rb +237 -0
- data/lib/bandwidth-sdk/models/message.rb +366 -0
- data/lib/bandwidth-sdk/models/message_delivered_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/message_delivered_callback_message.rb +404 -0
- data/lib/bandwidth-sdk/models/message_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/message_failed_callback.rb +295 -0
- data/lib/bandwidth-sdk/models/message_failed_callback_message.rb +409 -0
- data/lib/bandwidth-sdk/models/message_request.rb +355 -0
- data/lib/bandwidth-sdk/models/message_sending_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/message_sending_callback_message.rb +409 -0
- data/lib/bandwidth-sdk/models/message_status_enum.rb +46 -0
- data/lib/bandwidth-sdk/models/message_type_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/messages_list.rb +240 -0
- data/lib/bandwidth-sdk/models/messaging_code_response.rb +220 -0
- data/lib/bandwidth-sdk/models/messaging_request_error.rb +238 -0
- data/lib/bandwidth-sdk/models/mfa_forbidden_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/mfa_request_error.rb +230 -0
- data/lib/bandwidth-sdk/models/mfa_unauthorized_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/page_info.rb +250 -0
- data/lib/bandwidth-sdk/models/priority_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/recording_available_callback.rb +454 -0
- data/lib/bandwidth-sdk/models/recording_complete_callback.rb +455 -0
- data/lib/bandwidth-sdk/models/recording_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/redirect_callback.rb +395 -0
- data/lib/bandwidth-sdk/models/redirect_method_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/stir_shaken.rb +240 -0
- data/lib/bandwidth-sdk/models/tag.rb +228 -0
- data/lib/bandwidth-sdk/models/tn_lookup_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/transcribe_recording.rb +354 -0
- data/lib/bandwidth-sdk/models/transcription.rb +230 -0
- data/lib/bandwidth-sdk/models/transcription_available_callback.rb +443 -0
- data/lib/bandwidth-sdk/models/transcription_list.rb +221 -0
- data/lib/bandwidth-sdk/models/transcription_metadata.rb +251 -0
- data/lib/bandwidth-sdk/models/transfer_answer_callback.rb +385 -0
- data/lib/bandwidth-sdk/models/transfer_complete_callback.rb +417 -0
- data/lib/bandwidth-sdk/models/transfer_disconnect_callback.rb +437 -0
- data/lib/bandwidth-sdk/models/update_call.rb +411 -0
- data/lib/bandwidth-sdk/models/update_call_recording.rb +246 -0
- data/lib/bandwidth-sdk/models/update_conference.rb +394 -0
- data/lib/bandwidth-sdk/models/update_conference_member.rb +243 -0
- data/lib/bandwidth-sdk/models/verify_code_request.rb +342 -0
- data/lib/bandwidth-sdk/models/verify_code_response.rb +220 -0
- data/lib/bandwidth-sdk/models/voice_api_error.rb +238 -0
- data/lib/bandwidth-sdk/models/voice_code_response.rb +220 -0
- data/lib/bandwidth-sdk/version.rb +15 -0
- data/lib/bandwidth-sdk.rb +166 -0
- data/openapi-config.yml +11 -0
- data/ruby-notes.md +64 -0
- data/spec/call_utils.rb +74 -0
- data/spec/fixtures/ruby_cat.jpeg +0 -0
- data/spec/integration/calls_api_integration_spec.rb +181 -0
- data/spec/integration/conferences_api_integration_spec.rb +163 -0
- data/spec/integration/media_api_integration_spec.rb +86 -0
- data/spec/integration/messages_api_integration_spec.rb +97 -0
- data/spec/integration/mfa_api_integration_spec.rb +109 -0
- data/spec/integration/phone_number_lookup_api_integration_spec.rb +92 -0
- data/spec/integration/recordings_api_integration_spec.rb +219 -0
- data/spec/integration/statistics_api_integration_spec.rb +57 -0
- data/spec/spec_helper.rb +154 -0
- data/spec/unit/api/calls_api_spec.rb +89 -0
- data/spec/unit/api/conferences_api_spec.rb +163 -0
- data/spec/unit/api/media_api_spec.rb +90 -0
- data/spec/unit/api/messages_api_spec.rb +73 -0
- data/spec/unit/api/mfa_api_spec.rb +74 -0
- data/spec/unit/api/phone_number_lookup_api_spec.rb +61 -0
- data/spec/unit/api/recordings_api_spec.rb +177 -0
- data/spec/unit/api/statistics_api_spec.rb +47 -0
- data/spec/unit/models/account_statistics_spec.rb +40 -0
- data/spec/unit/models/answer_callback_spec.rb +112 -0
- data/spec/unit/models/bridge_complete_callback_spec.rb +124 -0
- data/spec/unit/models/bridge_target_complete_callback_spec.rb +106 -0
- data/spec/unit/models/bxml/bxml_spec.rb +18 -0
- data/spec/unit/models/bxml/nestable_verb_spec.rb +13 -0
- data/spec/unit/models/bxml/response_spec.rb +18 -0
- data/spec/unit/models/bxml/verb_spec.rb +28 -0
- data/spec/unit/models/bxml/verbs/bridge_spec.rb +60 -0
- data/spec/unit/models/bxml/verbs/conference_spec.rb +60 -0
- data/spec/unit/models/bxml/verbs/forward_spec.rb +46 -0
- data/spec/unit/models/bxml/verbs/gather_spec.rb +88 -0
- data/spec/unit/models/bxml/verbs/hangup_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/pause_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/pause_spec.rb +36 -0
- data/spec/unit/models/bxml/verbs/phone_number_spec.rb +56 -0
- data/spec/unit/models/bxml/verbs/play_audio_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/record_spec.rb +70 -0
- data/spec/unit/models/bxml/verbs/redirect_spec.rb +52 -0
- data/spec/unit/models/bxml/verbs/resume_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/ring_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/send_dtmf_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/sip_uri_spec.rb +58 -0
- data/spec/unit/models/bxml/verbs/speak_sentence_spec.rb +40 -0
- data/spec/unit/models/bxml/verbs/start_gather_spec.rb +44 -0
- data/spec/unit/models/bxml/verbs/start_recording_spec.rb +54 -0
- data/spec/unit/models/bxml/verbs/start_stream_spec.rb +74 -0
- data/spec/unit/models/bxml/verbs/stop_gather_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/stop_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/stop_stream_spec.rb +36 -0
- data/spec/unit/models/bxml/verbs/stream_param_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/tag_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/transfer_spec.rb +86 -0
- data/spec/unit/models/call_direction_enum_spec.rb +28 -0
- data/spec/unit/models/call_recording_metadata_spec.rb +136 -0
- data/spec/unit/models/call_state_enum_spec.rb +28 -0
- data/spec/unit/models/call_state_spec.rb +136 -0
- data/spec/unit/models/callback_method_enum_spec.rb +28 -0
- data/spec/unit/models/code_request_spec.rb +64 -0
- data/spec/unit/models/conference_completed_callback_spec.rb +58 -0
- data/spec/unit/models/conference_created_callback_spec.rb +58 -0
- data/spec/unit/models/conference_member_exit_callback_spec.rb +76 -0
- data/spec/unit/models/conference_member_join_callback_spec.rb +76 -0
- data/spec/unit/models/conference_member_spec.rb +64 -0
- data/spec/unit/models/conference_recording_available_callback_spec.rb +112 -0
- data/spec/unit/models/conference_recording_metadata_spec.rb +94 -0
- data/spec/unit/models/conference_redirect_callback_spec.rb +58 -0
- data/spec/unit/models/conference_spec.rb +76 -0
- data/spec/unit/models/conference_state_enum_spec.rb +28 -0
- data/spec/unit/models/create_call_response_spec.rb +154 -0
- data/spec/unit/models/create_call_spec.rb +142 -0
- data/spec/unit/models/create_lookup_response_spec.rb +40 -0
- data/spec/unit/models/create_message_request_error_spec.rb +46 -0
- data/spec/unit/models/deferred_result_spec.rb +40 -0
- data/spec/unit/models/disconnect_callback_spec.rb +130 -0
- data/spec/unit/models/diversion_spec.rb +70 -0
- data/spec/unit/models/dtmf_callback_spec.rb +130 -0
- data/spec/unit/models/field_error_spec.rb +40 -0
- data/spec/unit/models/file_format_enum_spec.rb +28 -0
- data/spec/unit/models/gather_callback_spec.rb +136 -0
- data/spec/unit/models/inbound_message_callback_message_spec.rb +100 -0
- data/spec/unit/models/inbound_message_callback_spec.rb +58 -0
- data/spec/unit/models/initiate_callback_spec.rb +100 -0
- data/spec/unit/models/list_message_direction_enum_spec.rb +28 -0
- data/spec/unit/models/list_message_item_spec.rb +124 -0
- data/spec/unit/models/lookup_request_spec.rb +34 -0
- data/spec/unit/models/lookup_result_spec.rb +82 -0
- data/spec/unit/models/lookup_status_enum_spec.rb +28 -0
- data/spec/unit/models/lookup_status_spec.rb +52 -0
- data/spec/unit/models/machine_detection_complete_callback_spec.rb +112 -0
- data/spec/unit/models/machine_detection_configuration_spec.rb +118 -0
- data/spec/unit/models/machine_detection_mode_enum_spec.rb +28 -0
- data/spec/unit/models/media_spec.rb +46 -0
- data/spec/unit/models/message_delivered_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_delivered_callback_spec.rb +58 -0
- data/spec/unit/models/message_direction_enum_spec.rb +28 -0
- data/spec/unit/models/message_failed_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_failed_callback_spec.rb +64 -0
- data/spec/unit/models/message_request_spec.rb +76 -0
- data/spec/unit/models/message_sending_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_sending_callback_spec.rb +58 -0
- data/spec/unit/models/message_spec.rb +100 -0
- data/spec/unit/models/message_status_enum_spec.rb +28 -0
- data/spec/unit/models/message_type_enum_spec.rb +28 -0
- data/spec/unit/models/messages_list_spec.rb +46 -0
- data/spec/unit/models/messaging_code_response_spec.rb +34 -0
- data/spec/unit/models/messaging_request_error_spec.rb +40 -0
- data/spec/unit/models/mfa_forbidden_request_error_spec.rb +34 -0
- data/spec/unit/models/mfa_request_error_spec.rb +40 -0
- data/spec/unit/models/mfa_unauthorized_request_error_spec.rb +34 -0
- data/spec/unit/models/page_info_spec.rb +52 -0
- data/spec/unit/models/priority_enum_spec.rb +28 -0
- data/spec/unit/models/recording_available_callback_spec.rb +160 -0
- data/spec/unit/models/recording_complete_callback_spec.rb +160 -0
- data/spec/unit/models/recording_state_enum_spec.rb +28 -0
- data/spec/unit/models/redirect_callback_spec.rb +124 -0
- data/spec/unit/models/redirect_method_enum_spec.rb +28 -0
- data/spec/unit/models/stir_shaken_spec.rb +46 -0
- data/spec/unit/models/tag_spec.rb +40 -0
- data/spec/unit/models/tn_lookup_request_error_spec.rb +34 -0
- data/spec/unit/models/transcribe_recording_spec.rb +64 -0
- data/spec/unit/models/transcription_available_callback_spec.rb +154 -0
- data/spec/unit/models/transcription_list_spec.rb +34 -0
- data/spec/unit/models/transcription_metadata_spec.rb +52 -0
- data/spec/unit/models/transcription_spec.rb +40 -0
- data/spec/unit/models/transfer_answer_callback_spec.rb +118 -0
- data/spec/unit/models/transfer_complete_callback_spec.rb +136 -0
- data/spec/unit/models/transfer_disconnect_callback_spec.rb +148 -0
- data/spec/unit/models/update_call_recording_spec.rb +34 -0
- data/spec/unit/models/update_call_spec.rb +88 -0
- data/spec/unit/models/update_conference_member_spec.rb +46 -0
- data/spec/unit/models/update_conference_spec.rb +82 -0
- data/spec/unit/models/verify_code_request_spec.rb +52 -0
- data/spec/unit/models/verify_code_response_spec.rb +34 -0
- data/spec/unit/models/voice_api_error_spec.rb +46 -0
- data/spec/unit/models/voice_code_response_spec.rb +34 -0
- metadata +543 -248
- data/LICENSE +0 -28
- data/lib/bandwidth/api_helper.rb +0 -280
- data/lib/bandwidth/client.rb +0 -75
- data/lib/bandwidth/configuration.rb +0 -209
- data/lib/bandwidth/exceptions/api_exception.rb +0 -20
- data/lib/bandwidth/http/api_response.rb +0 -38
- data/lib/bandwidth/http/auth/messaging_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/multi_factor_auth_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/phone_number_lookup_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/voice_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/web_rtc_basic_auth.rb +0 -22
- data/lib/bandwidth/http/faraday_client.rb +0 -70
- data/lib/bandwidth/http/http_call_back.rb +0 -24
- data/lib/bandwidth/http/http_client.rb +0 -104
- data/lib/bandwidth/http/http_method_enum.rb +0 -13
- data/lib/bandwidth/http/http_request.rb +0 -50
- data/lib/bandwidth/http/http_response.rb +0 -29
- data/lib/bandwidth/messaging_lib/messaging/client.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +0 -491
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +0 -37
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +0 -100
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +0 -174
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +0 -203
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +0 -79
- data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging/models/media.rb +0 -70
- data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +0 -122
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +0 -82
- data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +0 -19
- data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging.rb +0 -25
- data/lib/bandwidth/models/base_model.rb +0 -58
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/client.rb +0 -60
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/mfa_controller.rb +0 -214
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/error_with_request_exception.rb +0 -37
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/forbidden_request_exception.rb +0 -32
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/unauthorized_request_exception.rb +0 -32
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_code_request_schema.rb +0 -103
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_messaging_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_code_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_request_schema.rb +0 -94
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_voice_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +0 -23
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/client.rb +0 -60
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +0 -1553
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +0 -32
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +0 -50
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +0 -61
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +0 -95
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +0 -132
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +0 -20
- data/lib/bandwidth/utilities/date_time_helper.rb +0 -156
- data/lib/bandwidth/utilities/file_wrapper.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/bxml.rb +0 -36
- data/lib/bandwidth/voice_lib/bxml/response.rb +0 -39
- data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +0 -28
- data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +0 -32
- data/lib/bandwidth/voice_lib/bxml/verbs/forward.rb +0 -18
- data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +0 -49
- data/lib/bandwidth/voice_lib/bxml/verbs/hangup.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/pause.rb +0 -15
- data/lib/bandwidth/voice_lib/bxml/verbs/pause_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +0 -24
- data/lib/bandwidth/voice_lib/bxml/verbs/play_audio.rb +0 -17
- data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +0 -33
- data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +0 -24
- data/lib/bandwidth/voice_lib/bxml/verbs/resume_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +0 -25
- data/lib/bandwidth/voice_lib/bxml/verbs/speak_sentence.rb +0 -18
- data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +0 -20
- data/lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb +0 -25
- data/lib/bandwidth/voice_lib/bxml/verbs/start_stream.rb +0 -41
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_stream.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/stream_param.rb +0 -17
- data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +0 -13
- data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +0 -48
- data/lib/bandwidth/voice_lib/bxml/verbs/xml_verb.rb +0 -26
- data/lib/bandwidth/voice_lib/voice/client.rb +0 -60
- data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +0 -1820
- data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/voice_lib/voice/exceptions/api_error_exception.rb +0 -42
- data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/answer_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +0 -343
- data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +0 -250
- data/lib/bandwidth/voice_lib/voice/models/call_state.rb +0 -301
- data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +0 -211
- data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/conference_member_state.rb +0 -103
- data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +0 -173
- data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +0 -153
- data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +0 -236
- data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +0 -266
- data/lib/bandwidth/voice_lib/voice/models/direction_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/disconnect_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/diversion.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/file_format_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +0 -231
- data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/modify_call_recording_request.rb +0 -48
- data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +0 -156
- data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +0 -144
- data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/redirect_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/status_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +0 -108
- data/lib/bandwidth/voice_lib/voice/models/transcript.rb +0 -60
- data/lib/bandwidth/voice_lib/voice/models/transcription.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +0 -89
- data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +0 -59
- data/lib/bandwidth/voice_lib/voice.rb +0 -48
- data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +0 -18
- data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +0 -60
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +0 -703
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +0 -37
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +0 -62
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +0 -17
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +0 -115
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +0 -48
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/publish_permission_enum.rb +0 -17
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +0 -60
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +0 -71
- data/lib/bandwidth/web_rtc_lib/web_rtc.rb +0 -22
- data/lib/bandwidth.rb +0 -72
- data/test/controllers/controller_test_base.rb +0 -21
- data/test/http_response_catcher.rb +0 -19
- data/test/integration/test_integration.rb +0 -767
- data/test/test_helper.rb +0 -94
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# Integration Tests for Bandwidth::MFAApi
|
5
|
+
describe 'MFAApi Integration Tests' do
|
6
|
+
before(:all) do
|
7
|
+
Bandwidth.configure do |config|
|
8
|
+
config.username = BW_USERNAME
|
9
|
+
config.password = BW_PASSWORD
|
10
|
+
end
|
11
|
+
@api_instance_mfa = Bandwidth::MFAApi.new
|
12
|
+
end
|
13
|
+
|
14
|
+
# Messaging Authentication Code
|
15
|
+
describe 'generate_messaging_code' do
|
16
|
+
it 'generates messaging mfa code' do
|
17
|
+
req_schema = Bandwidth::CodeRequest.new(
|
18
|
+
to: USER_NUMBER,
|
19
|
+
from: BW_NUMBER,
|
20
|
+
application_id: BW_MESSAGING_APPLICATION_ID,
|
21
|
+
message: "Your temporary {NAME} {SCOPE} code is: {CODE}",
|
22
|
+
digits: 6
|
23
|
+
)
|
24
|
+
response = @api_instance_mfa.generate_messaging_code_with_http_info(BW_ACCOUNT_ID, req_schema)
|
25
|
+
|
26
|
+
expect(response[CODE]).to eq(200)
|
27
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::MessagingCodeResponse)
|
28
|
+
expect(response[DATA].message_id.length).to eq(29)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Voice Authentication Code
|
33
|
+
describe 'generate_voice_code' do
|
34
|
+
it 'generates voice mfa code' do
|
35
|
+
req_schema = Bandwidth::CodeRequest.new(
|
36
|
+
to: USER_NUMBER,
|
37
|
+
from: BW_NUMBER,
|
38
|
+
application_id: BW_VOICE_APPLICATION_ID,
|
39
|
+
message: "Your temporary {NAME} {SCOPE} code is: {CODE}",
|
40
|
+
digits: 6
|
41
|
+
)
|
42
|
+
response = @api_instance_mfa.generate_voice_code_with_http_info(BW_ACCOUNT_ID, req_schema)
|
43
|
+
|
44
|
+
expect(response[CODE]).to eq(200)
|
45
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::VoiceCodeResponse)
|
46
|
+
expect(response[DATA].call_id.length).to eq(47)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Verify Authentication Code
|
51
|
+
describe 'verify_code' do
|
52
|
+
it 'verifies mfa code' do
|
53
|
+
req_schema = Bandwidth::VerifyCodeRequest.new(
|
54
|
+
to: "+1000" + rand(1...10000000).to_s,
|
55
|
+
scope: "2FA",
|
56
|
+
expiration_time_in_minutes: 3,
|
57
|
+
code: "12345"
|
58
|
+
)
|
59
|
+
response = @api_instance_mfa.verify_code_with_http_info(BW_ACCOUNT_ID, req_schema)
|
60
|
+
|
61
|
+
expect(response[CODE]).to eq(200)
|
62
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::VerifyCodeResponse)
|
63
|
+
expect(response[DATA].valid).to be_instance_of(FalseClass)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# HTTP 4XX Errors
|
68
|
+
describe 'http error' do
|
69
|
+
it 'causes a 400 error' do
|
70
|
+
req_schema = Bandwidth::CodeRequest.new(
|
71
|
+
to: USER_NUMBER,
|
72
|
+
from: BW_NUMBER,
|
73
|
+
application_id: "not_an_application_id",
|
74
|
+
message: "Your temporary {NAME} {SCOPE} code is: {CODE}",
|
75
|
+
digits: 6
|
76
|
+
)
|
77
|
+
|
78
|
+
expect {
|
79
|
+
response = @api_instance_mfa.generate_messaging_code_with_http_info(BW_ACCOUNT_ID, req_schema)
|
80
|
+
}.to raise_error { |e|
|
81
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
82
|
+
expect(e.code).to eq(400)
|
83
|
+
}
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'causes a 403 error' do
|
87
|
+
Bandwidth.configure do |config|
|
88
|
+
config.username = 'bad_username'
|
89
|
+
config.password = 'bad_password'
|
90
|
+
end
|
91
|
+
|
92
|
+
req_schema = Bandwidth::CodeRequest.new(
|
93
|
+
to: USER_NUMBER,
|
94
|
+
from: BW_NUMBER,
|
95
|
+
application_id: BW_MESSAGING_APPLICATION_ID,
|
96
|
+
message: "Your temporary {NAME} {SCOPE} code is: {CODE}",
|
97
|
+
digits: 6
|
98
|
+
)
|
99
|
+
|
100
|
+
expect {
|
101
|
+
response = @api_instance_mfa.generate_messaging_code_with_http_info(BW_ACCOUNT_ID, req_schema)
|
102
|
+
}.to raise_error { |e|
|
103
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
104
|
+
expect(e.code).to eq(403)
|
105
|
+
}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# Integration Tests for Bandwidth::PhoneNumberLookupApi
|
5
|
+
describe 'PhoneNumberLookupApi Integration Tests' do
|
6
|
+
before(:all) do
|
7
|
+
Bandwidth.configure do |config|
|
8
|
+
config.username = BW_USERNAME
|
9
|
+
config.password = BW_PASSWORD
|
10
|
+
end
|
11
|
+
@api_instance_tnlookup = Bandwidth::PhoneNumberLookupApi.new
|
12
|
+
$lookup_request_id = ""
|
13
|
+
end
|
14
|
+
|
15
|
+
# Create Lookup
|
16
|
+
describe 'create_lookup' do
|
17
|
+
it 'creates a tn lookup request' do
|
18
|
+
tn_body = Bandwidth::LookupRequest.new(
|
19
|
+
tns: [BW_NUMBER]
|
20
|
+
)
|
21
|
+
response = @api_instance_tnlookup.create_lookup_with_http_info(BW_ACCOUNT_ID, tn_body)
|
22
|
+
|
23
|
+
expect(response[CODE]).to eq(202)
|
24
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::CreateLookupResponse)
|
25
|
+
expect(response[DATA].request_id.length).to eq(36)
|
26
|
+
expect(response[DATA].status).to be_instance_of(String)
|
27
|
+
|
28
|
+
$lookup_request_id = response[DATA].request_id
|
29
|
+
sleep(1)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Get Lookup Status
|
34
|
+
describe 'get_lookup_status' do
|
35
|
+
it 'gets lookup status' do
|
36
|
+
response = @api_instance_tnlookup.get_lookup_status_with_http_info(BW_ACCOUNT_ID, $lookup_request_id)
|
37
|
+
|
38
|
+
expect(response[CODE]).to eq(200)
|
39
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::LookupStatus)
|
40
|
+
expect(response[DATA].request_id).to eq($lookup_request_id)
|
41
|
+
expect(response[DATA].status).to be_instance_of(String)
|
42
|
+
expect(response[DATA].result[0].response_code).to be_instance_of(Integer)
|
43
|
+
expect(response[DATA].result[0].e_164_format).to eq(BW_NUMBER)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# HTTP 4XX Errors
|
48
|
+
describe 'http error' do
|
49
|
+
it 'causes a 400 error' do
|
50
|
+
tn_body_bad = Bandwidth::LookupRequest.new(
|
51
|
+
tns: ["+1invalid"]
|
52
|
+
)
|
53
|
+
|
54
|
+
expect {
|
55
|
+
@api_instance_tnlookup.create_lookup_with_http_info(BW_ACCOUNT_ID, tn_body_bad)
|
56
|
+
}.to raise_error { |e|
|
57
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
58
|
+
expect(e.code).to eq(400)
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'causes a 404 error' do
|
63
|
+
req_id_dne = "12345678-abcd-cdef-9876-12345678abcd"
|
64
|
+
|
65
|
+
expect {
|
66
|
+
@api_instance_tnlookup.get_lookup_status_with_http_info(BW_ACCOUNT_ID, req_id_dne)
|
67
|
+
}.to raise_error { |e|
|
68
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
69
|
+
expect(e.code).to eq(404)
|
70
|
+
}
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'causes a 401 error' do
|
74
|
+
Bandwidth.configure do |config|
|
75
|
+
config.username = 'bad_username'
|
76
|
+
config.password = 'bad_password'
|
77
|
+
end
|
78
|
+
|
79
|
+
tn_body = Bandwidth::LookupRequest.new(
|
80
|
+
tns: [BW_NUMBER]
|
81
|
+
)
|
82
|
+
|
83
|
+
expect {
|
84
|
+
@api_instance_tnlookup.create_lookup_with_http_info(BW_ACCOUNT_ID, tn_body)
|
85
|
+
}.to raise_error { |e|
|
86
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
87
|
+
expect(e.code).to eq(401)
|
88
|
+
}
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
@@ -0,0 +1,219 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
require_relative '../call_utils'
|
4
|
+
|
5
|
+
# Integration Tests for Bandwidth::RecordingsApi
|
6
|
+
describe 'RecordingsApi Integration Tests' do
|
7
|
+
before(:all) do
|
8
|
+
Bandwidth.configure do |config|
|
9
|
+
config.username = BW_USERNAME
|
10
|
+
config.password = BW_PASSWORD
|
11
|
+
config.return_binary_data = true
|
12
|
+
end
|
13
|
+
@api_instance_recordings = Bandwidth::RecordingsApi.new
|
14
|
+
@api_instance_calls = Bandwidth::CallsApi.new
|
15
|
+
$manteca_test_id = setup_manteca('CALL')
|
16
|
+
$manteca_call_id = create_manteca_call($manteca_test_id, "/bxml/startLongRecording", @api_instance_calls)
|
17
|
+
$recording_id = ""
|
18
|
+
end
|
19
|
+
|
20
|
+
# Update Recording
|
21
|
+
describe 'update_call_recording_state' do
|
22
|
+
it 'updates and ends the manteca call recording' do
|
23
|
+
pause_recording = Bandwidth::UpdateCallRecording.new(
|
24
|
+
state: Bandwidth::RecordingStateEnum::PAUSED
|
25
|
+
)
|
26
|
+
|
27
|
+
start_recording = Bandwidth::UpdateCallRecording.new(
|
28
|
+
state: Bandwidth::RecordingStateEnum::RECORDING
|
29
|
+
)
|
30
|
+
|
31
|
+
sleep(SLEEP_TIME_S * 2)
|
32
|
+
pause_response = @api_instance_recordings.update_call_recording_state_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, pause_recording)
|
33
|
+
expect(pause_response[CODE]).to eq(200)
|
34
|
+
|
35
|
+
sleep(SLEEP_TIME_S)
|
36
|
+
record_response = @api_instance_recordings.update_call_recording_state_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, start_recording)
|
37
|
+
expect(record_response[CODE]).to eq(200)
|
38
|
+
|
39
|
+
complete_response = @api_instance_calls.update_call_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $complete_call_body)
|
40
|
+
expect(complete_response[CODE]).to eq(200)
|
41
|
+
|
42
|
+
retries = 0
|
43
|
+
recording_complete = false
|
44
|
+
begin
|
45
|
+
while !recording_complete && retries < MAX_RETRIES
|
46
|
+
recording_complete = get_manteca_test_status($manteca_test_id)["callRecorded"]
|
47
|
+
retries += 1
|
48
|
+
sleep(SLEEP_TIME_S)
|
49
|
+
end
|
50
|
+
rescue => e
|
51
|
+
puts e.inspect
|
52
|
+
end
|
53
|
+
|
54
|
+
expect(recording_complete).to be_instance_of(TrueClass)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Get Call Recordings
|
59
|
+
describe 'list_account_call_recordings' do
|
60
|
+
it 'lists account call recordings' do
|
61
|
+
response = @api_instance_recordings.list_account_call_recordings_with_http_info(BW_ACCOUNT_ID)
|
62
|
+
|
63
|
+
expect(response[CODE]).to eq(200)
|
64
|
+
expect(response[DATA][0]).to be_instance_of(Bandwidth::CallRecordingMetadata)
|
65
|
+
expect(response[DATA][0].application_id).to eq(MANTECA_APPLICATION_ID)
|
66
|
+
expect(response[DATA][0].account_id).to eq(BW_ACCOUNT_ID)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# List Call Recordings
|
71
|
+
describe 'list_call_recordings' do
|
72
|
+
it 'lists all recordings for a single call' do
|
73
|
+
response = @api_instance_recordings.list_call_recordings_with_http_info(BW_ACCOUNT_ID, $manteca_call_id)
|
74
|
+
|
75
|
+
expect(response[CODE]).to eq(200)
|
76
|
+
expect(response[DATA][0]).to be_instance_of(Bandwidth::CallRecordingMetadata)
|
77
|
+
expect(response[DATA][0].application_id).to eq(MANTECA_APPLICATION_ID)
|
78
|
+
expect(response[DATA][0].account_id).to eq(BW_ACCOUNT_ID)
|
79
|
+
expect(response[DATA][0].call_id).to eq($manteca_call_id)
|
80
|
+
expect(response[DATA][0].recording_id).to be_instance_of(String)
|
81
|
+
expect(response[DATA][0].status).to eq('complete').or eq('partial')
|
82
|
+
|
83
|
+
$recording_id = response[DATA][0].recording_id
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Get Call Recording
|
88
|
+
describe 'get_call_recording' do
|
89
|
+
it 'gets a call recording by id' do
|
90
|
+
response = @api_instance_recordings.get_call_recording_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
91
|
+
|
92
|
+
expect(response[CODE]).to eq(200)
|
93
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::CallRecordingMetadata)
|
94
|
+
expect(response[DATA].application_id).to eq(MANTECA_APPLICATION_ID)
|
95
|
+
expect(response[DATA].account_id).to eq(BW_ACCOUNT_ID)
|
96
|
+
expect(response[DATA].call_id).to eq($manteca_call_id)
|
97
|
+
expect(response[DATA].status).to eq('complete').or eq('partial')
|
98
|
+
expect(response[DATA].recording_id).to eq($recording_id)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# Download Recording
|
103
|
+
describe 'download_call_recording' do
|
104
|
+
it 'downloads a call recording by id' do
|
105
|
+
response = @api_instance_recordings.download_call_recording_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
106
|
+
|
107
|
+
expect(response[CODE]).to eq(200)
|
108
|
+
expect(response[DATA]).to be_instance_of(String)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
# Create Transcription Request
|
113
|
+
describe 'transcribe_call_recording' do
|
114
|
+
it 'creates a transcription request' do
|
115
|
+
transcribe_recording = Bandwidth::TranscribeRecording.new(
|
116
|
+
callback_url: MANTECA_BASE_URL + "/transcriptions",
|
117
|
+
tag: $manteca_test_id
|
118
|
+
)
|
119
|
+
|
120
|
+
response = @api_instance_recordings.transcribe_call_recording_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id, transcribe_recording)
|
121
|
+
expect(response[CODE]).to eq(204)
|
122
|
+
|
123
|
+
retries = 0
|
124
|
+
transcription_complete = false
|
125
|
+
sleep(SLEEP_TIME_S * 10)
|
126
|
+
begin
|
127
|
+
while !transcription_complete && retries < MAX_RETRIES
|
128
|
+
transcription_complete = get_manteca_test_status($manteca_test_id)["callTranscribed"]
|
129
|
+
retries += 1
|
130
|
+
sleep(SLEEP_TIME_S)
|
131
|
+
end
|
132
|
+
rescue => e
|
133
|
+
puts e.inspect
|
134
|
+
end
|
135
|
+
|
136
|
+
expect(transcription_complete).to be_instance_of(TrueClass)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
# Get Transcription
|
141
|
+
describe 'get_call_transcription' do
|
142
|
+
it 'gets the completed call recording transcription' do
|
143
|
+
response = @api_instance_recordings.get_call_transcription_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
144
|
+
|
145
|
+
expect(response[CODE]).to eq(200)
|
146
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::TranscriptionList)
|
147
|
+
expect(response[DATA].transcripts[0]).to be_instance_of(Bandwidth::Transcription)
|
148
|
+
expect(response[DATA].transcripts[0].text).to be_instance_of(String)
|
149
|
+
expect(response[DATA].transcripts[0].confidence).to be_instance_of(Float)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
# Delete Transcription
|
154
|
+
describe 'delete_call_transcription' do
|
155
|
+
it 'deletes the completed call recording transcription' do
|
156
|
+
response = @api_instance_recordings.delete_call_transcription_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
157
|
+
expect(response[CODE]).to eq(204)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
# Delete Recording Media
|
162
|
+
describe 'delete_recording_media' do
|
163
|
+
it 'deletes the completed call recording media' do
|
164
|
+
response = @api_instance_recordings.delete_recording_media_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
165
|
+
expect(response[CODE]).to eq(204)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
# Delete Recording
|
170
|
+
describe 'delete_recording' do
|
171
|
+
it 'deletes the completed call recording data' do
|
172
|
+
response = @api_instance_recordings.delete_recording_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
173
|
+
expect(response[CODE]).to eq(204)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
# HTTP 4XX Errors
|
178
|
+
describe 'http error' do
|
179
|
+
it 'causes a 404 error' do
|
180
|
+
dne_id = "does-not-exist"
|
181
|
+
|
182
|
+
expect {
|
183
|
+
@api_instance_recordings.get_call_recording_with_http_info(BW_ACCOUNT_ID, dne_id, dne_id)
|
184
|
+
}.to raise_error { |e|
|
185
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
186
|
+
expect(e.code).to eq(404)
|
187
|
+
}
|
188
|
+
end
|
189
|
+
|
190
|
+
it 'causes a 401 error' do
|
191
|
+
Bandwidth.configure do |config|
|
192
|
+
config.username = 'bad_username'
|
193
|
+
config.password = 'bad_password'
|
194
|
+
end
|
195
|
+
|
196
|
+
expect {
|
197
|
+
@api_instance_recordings.get_call_recording_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
198
|
+
}.to raise_error { |e|
|
199
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
200
|
+
expect(e.code).to eq(401)
|
201
|
+
}
|
202
|
+
end
|
203
|
+
|
204
|
+
it 'causes a 403 error' do
|
205
|
+
Bandwidth.configure do |config|
|
206
|
+
config.username = FORBIDDEN_USERNAME
|
207
|
+
config.password = FORBIDDEN_PASSWORD
|
208
|
+
end
|
209
|
+
|
210
|
+
expect {
|
211
|
+
@api_instance_recordings.get_call_recording_with_http_info(BW_ACCOUNT_ID, $manteca_call_id, $recording_id)
|
212
|
+
}.to raise_error { |e|
|
213
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
214
|
+
expect(e.code).to eq(403)
|
215
|
+
}
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# Integration Tests for Bandwidth::StatisticsApi
|
5
|
+
describe 'StatisticsApi Integration Tests' do
|
6
|
+
before(:all) do
|
7
|
+
Bandwidth.configure do |config|
|
8
|
+
config.username = BW_USERNAME
|
9
|
+
config.password = BW_PASSWORD
|
10
|
+
end
|
11
|
+
@api_instance_statistics = Bandwidth::StatisticsApi.new
|
12
|
+
end
|
13
|
+
|
14
|
+
# Get Account Statistics
|
15
|
+
describe 'get_statistics' do
|
16
|
+
it 'gets account statistics' do
|
17
|
+
response = @api_instance_statistics.get_statistics_with_http_info(BW_ACCOUNT_ID)
|
18
|
+
|
19
|
+
expect(response[CODE]).to eq(200)
|
20
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::AccountStatistics)
|
21
|
+
expect(response[DATA].current_call_queue_size).to be_instance_of(Integer)
|
22
|
+
expect(response[DATA].max_call_queue_size).to eq(7500)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# HTTP 4XX Errors
|
27
|
+
describe 'http error' do
|
28
|
+
it 'causes a 401 error' do
|
29
|
+
Bandwidth.configure do |config|
|
30
|
+
config.username = 'bad_username'
|
31
|
+
config.password = 'bad_password'
|
32
|
+
end
|
33
|
+
|
34
|
+
expect {
|
35
|
+
@api_instance_statistics.get_statistics_with_http_info(BW_ACCOUNT_ID)
|
36
|
+
}.to raise_error { |e|
|
37
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
38
|
+
expect(e.code).to eq(401)
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'causes a 403 error' do
|
43
|
+
Bandwidth.configure do |config|
|
44
|
+
config.username = FORBIDDEN_USERNAME
|
45
|
+
config.password = FORBIDDEN_PASSWORD
|
46
|
+
end
|
47
|
+
|
48
|
+
expect {
|
49
|
+
@api_instance_statistics.get_statistics_with_http_info(BW_ACCOUNT_ID)
|
50
|
+
}.to raise_error { |e|
|
51
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
52
|
+
expect(e.code).to eq(403)
|
53
|
+
}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,154 @@
|
|
1
|
+
=begin
|
2
|
+
#Bandwidth
|
3
|
+
|
4
|
+
#Bandwidth's Communication APIs
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
Contact: letstalk@bandwidth.com
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 6.4.0
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
# load the gem
|
14
|
+
require 'bandwidth-sdk'
|
15
|
+
|
16
|
+
# The following was generated by the `rspec --init` command. Conventionally, all
|
17
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
18
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause
|
19
|
+
# this file to always be loaded, without a need to explicitly require it in any
|
20
|
+
# files.
|
21
|
+
#
|
22
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
23
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
24
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
25
|
+
# individual file that may not need all of that loaded. Instead, consider making
|
26
|
+
# a separate helper file that requires the additional dependencies and performs
|
27
|
+
# the additional setup, and require it from the spec files that actually need
|
28
|
+
# it.
|
29
|
+
#
|
30
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
31
|
+
# users commonly want.
|
32
|
+
#
|
33
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
34
|
+
RSpec.configure do |config|
|
35
|
+
config.before(:suite) {
|
36
|
+
begin
|
37
|
+
BW_USERNAME = ENV.fetch("BW_USERNAME")
|
38
|
+
BW_PASSWORD = ENV.fetch("BW_PASSWORD")
|
39
|
+
FORBIDDEN_USERNAME = ENV.fetch("BW_USERNAME_FORBIDDEN")
|
40
|
+
FORBIDDEN_PASSWORD = ENV.fetch("BW_PASSWORD_FORBIDDEN")
|
41
|
+
BW_ACCOUNT_ID = ENV.fetch("BW_ACCOUNT_ID")
|
42
|
+
BW_VOICE_APPLICATION_ID = ENV.fetch("BW_VOICE_APPLICATION_ID")
|
43
|
+
BW_MESSAGING_APPLICATION_ID = ENV.fetch("BW_MESSAGING_APPLICATION_ID")
|
44
|
+
BASE_CALLBACK_URL = ENV.fetch("BASE_CALLBACK_URL")
|
45
|
+
BW_NUMBER = ENV.fetch("BW_NUMBER")
|
46
|
+
USER_NUMBER = ENV.fetch("USER_NUMBER")
|
47
|
+
MANTECA_ACTIVE_NUMBER = ENV.fetch("MANTECA_ACTIVE_NUMBER")
|
48
|
+
MANTECA_IDLE_NUMBER = ENV.fetch("MANTECA_IDLE_NUMBER")
|
49
|
+
MANTECA_BASE_URL = ENV.fetch("MANTECA_BASE_URL")
|
50
|
+
MANTECA_APPLICATION_ID = ENV.fetch("MANTECA_APPLICATION_ID")
|
51
|
+
OPERATING_SYSTEM = ENV.fetch("OPERATING_SYSTEM")
|
52
|
+
RUBY_VERSION = ENV.fetch("RUBY_VERSION")
|
53
|
+
rescue
|
54
|
+
puts "Environmental variables not found"
|
55
|
+
exit(-1)
|
56
|
+
end
|
57
|
+
|
58
|
+
DATA = 0 # index for response array related to the response data
|
59
|
+
CODE = 1 # index for response array related to the status code
|
60
|
+
SLEEP_TIME_S = 3 # default sleep time in seconds
|
61
|
+
MAX_RETRIES = 40
|
62
|
+
$active_calls = []
|
63
|
+
|
64
|
+
$complete_call_body = Bandwidth::UpdateCall.new(
|
65
|
+
state: Bandwidth::CallStateEnum::COMPLETED
|
66
|
+
)
|
67
|
+
}
|
68
|
+
|
69
|
+
config.after(:suite) {
|
70
|
+
Bandwidth.configure do |config|
|
71
|
+
config.username = BW_USERNAME
|
72
|
+
config.password = BW_PASSWORD
|
73
|
+
end
|
74
|
+
calls_api = Bandwidth::CallsApi.new
|
75
|
+
cleanup_calls($active_calls, calls_api)
|
76
|
+
}
|
77
|
+
|
78
|
+
# rspec-expectations config goes here. You can use an alternate
|
79
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
80
|
+
# assertions if you prefer.
|
81
|
+
config.expect_with :rspec do |expectations|
|
82
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
83
|
+
# and `failure_message` of custom matchers include text for helper methods
|
84
|
+
# defined using `chain`, e.g.:
|
85
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
86
|
+
# # => "be bigger than 2 and smaller than 4"
|
87
|
+
# ...rather than:
|
88
|
+
# # => "be bigger than 2"
|
89
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
90
|
+
end
|
91
|
+
|
92
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
93
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
94
|
+
config.mock_with :rspec do |mocks|
|
95
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
96
|
+
# a real object. This is generally recommended, and will default to
|
97
|
+
# `true` in RSpec 4.
|
98
|
+
mocks.verify_partial_doubles = true
|
99
|
+
end
|
100
|
+
|
101
|
+
# The settings below are suggested to provide a good initial experience
|
102
|
+
# with RSpec, but feel free to customize to your heart's content.
|
103
|
+
=begin
|
104
|
+
# These two settings work together to allow you to limit a spec run
|
105
|
+
# to individual examples or groups you care about by tagging them with
|
106
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
107
|
+
# get run.
|
108
|
+
config.filter_run :focus
|
109
|
+
config.run_all_when_everything_filtered = true
|
110
|
+
|
111
|
+
# Allows RSpec to persist some state between runs in order to support
|
112
|
+
# the `--only-failures` and `--next-failure` CLI options. We recommend
|
113
|
+
# you configure your source control system to ignore this file.
|
114
|
+
config.example_status_persistence_file_path = "spec/examples.txt"
|
115
|
+
|
116
|
+
# Limits the available syntax to the non-monkey patched syntax that is
|
117
|
+
# recommended. For more details, see:
|
118
|
+
# - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
|
119
|
+
# - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
120
|
+
# - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
|
121
|
+
config.disable_monkey_patching!
|
122
|
+
|
123
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
124
|
+
# be too noisy due to issues in dependencies.
|
125
|
+
config.warnings = true
|
126
|
+
|
127
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
128
|
+
# file, and it's useful to allow more verbose output when running an
|
129
|
+
# individual spec file.
|
130
|
+
if config.files_to_run.one?
|
131
|
+
# Use the documentation formatter for detailed output,
|
132
|
+
# unless a formatter has already been configured
|
133
|
+
# (e.g. via a command-line flag).
|
134
|
+
config.default_formatter = 'doc'
|
135
|
+
end
|
136
|
+
|
137
|
+
# Print the 10 slowest examples and example groups at the
|
138
|
+
# end of the spec run, to help surface which specs are running
|
139
|
+
# particularly slow.
|
140
|
+
config.profile_examples = 10
|
141
|
+
|
142
|
+
# Run specs in random order to surface order dependencies. If you find an
|
143
|
+
# order dependency and want to debug it, you can fix the order by providing
|
144
|
+
# the seed, which is printed after each run.
|
145
|
+
# --seed 1234
|
146
|
+
config.order = :random
|
147
|
+
|
148
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
149
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
150
|
+
# test failures related to randomization by passing the same `--seed` value
|
151
|
+
# as the one that triggered the failure.
|
152
|
+
Kernel.srand config.seed
|
153
|
+
=end
|
154
|
+
end
|