public void AutomatedOperatorDiscoveryShouldHandleHttpRequestException() { var options = new DiscoveryOptions(); _restClient.NextException = new System.Net.Http.HttpRequestException("This is the message"); Assert.ThrowsAsync <MobileConnectEndpointHttpException>(() => _discovery.StartAutomatedOperatorDiscoveryAsync(_config, REDIRECT_URL, options, null)); }
internal static async Task <MobileConnectStatus> AttemptDiscovery(IDiscoveryService discovery, string msisdn, string mcc, string mnc, IEnumerable <BasicKeyValuePair> cookies, MobileConnectConfig config, MobileConnectRequestOptions options) { DiscoveryResponse response = null; try { DiscoveryOptions discoveryOptions = options?.DiscoveryOptions ?? new DiscoveryOptions(); discoveryOptions.MSISDN = msisdn; discoveryOptions.IdentifiedMCC = mcc; discoveryOptions.IdentifiedMNC = mnc; discoveryOptions.RedirectUrl = config.RedirectUrl; discoveryOptions.XRedirect = config.XRedirect; response = await discovery.StartAutomatedOperatorDiscoveryAsync(config, config.RedirectUrl, discoveryOptions, cookies); } catch (MobileConnectInvalidArgumentException e) { Log.Error(() => $"An invalid argument was passed to AttemptDiscovery arg={e.Argument}"); return(MobileConnectStatus.Error(ErrorCodes.InvalidArgument, string.Format("An argument was found to be invalid during the process. The argument was {0}.", e.Argument), e)); } catch (MobileConnectEndpointHttpException e) { Log.Error(() => $"A general http error occurred in AttemptDiscovery msisdn={!string.IsNullOrEmpty(msisdn)} mcc={mcc} mnc={mnc} discoveryUrl={config.DiscoveryUrl}"); return(MobileConnectStatus.Error(ErrorCodes.HttpFailure, "An HTTP failure occured while calling the discovery endpoint, the endpoint may be inaccessible", e)); } catch (Exception e) { Log.Error(() => $"A general error occurred in AttemptDiscovery msisdn={!string.IsNullOrEmpty(msisdn)} mcc={mcc} mnc={mnc} discoveryUrl={config.DiscoveryUrl}"); return(MobileConnectStatus.Error(ErrorCodes.Unknown, "An unknown error occured while calling the Discovery service to obtain operator details", e)); } return(GenerateStatusFromDiscoveryResponse(discovery, response)); }