/// <summary>
        /// Generates random test serviceability response.
        /// </summary>
        /// <param name="address">Location postal address</param>
        /// <returns>Array of serviceability results from cable providers</returns>
        private async Task <ServiceabilityResult[]> MockDetermineBusinessServiceabilityAsync(Address address)
        {
            await Task.Delay(1500);

            // Simulate random errors
            if (this._account.EnableTestError && RandomData.Chance(1, 100))
            {
                throw RandomData.NextError();
            }

            // Generate random results
            var resultCount = RandomData.NextInteger(0, 2);
            var results     = new List <ServiceabilityResult>();

            for (var index = 0; index < resultCount; index++)
            {
                var provider = RandomData.NextProvider();
                var result   = new ServiceabilityResult
                {
                    LocationId   = RandomData.NextInteger(99999).ToString(),
                    LocationType = RandomData.Pick <LocationType>(new LocationType[] {
                        LocationType.Unknown, LocationType.Residential, LocationType.Business
                    }),
                    ProviderId = provider.Id,
                    Provider   = provider.Name,
                    SiteStatus = RandomData.Pick <SiteStatus>(new SiteStatus[] {
                        SiteStatus.OnNet, SiteStatus.OffNet, SiteStatus.NearNet,
                        SiteStatus.SurveyRequired, SiteStatus.Proximity
                    })
                };
                results.Add(result);
            }

            return(results.ToArray());
        }