internal static DeliveryClient GetMockedDeliveryClientWithProjectId(
            Guid projectId,
            MockHttpMessageHandler httpMessageHandler = null,
            IModelProvider modelProvider = null,
            IRetryPolicyProvider resiliencePolicyProvider = null,
            ITypeProvider typeProvider = null)
        {
            if (modelProvider != null)
            {
                _mockModelProvider = modelProvider;
            }
            if (resiliencePolicyProvider != null)
            {
                _mockResiliencePolicyProvider = resiliencePolicyProvider;
            }
            if (typeProvider != null)
            {
                _mockTypeProvider = typeProvider;
            }
            var httpClient = httpMessageHandler != null?httpMessageHandler.ToHttpClient() : MockHttp.ToHttpClient();

            var client = new DeliveryClient(
                DeliveryOptionsFactory.Create(new DeliveryOptions {
                ProjectId = projectId.ToString()
            }),
                _mockModelProvider,
                _mockResiliencePolicyProvider,
                _mockTypeProvider,
                new DeliveryHttpClient(httpClient),
                _serializer
                );

            return(client);
        }
        internal static DeliveryClient GetMockedDeliveryClientWithOptions(DeliveryOptions options, MockHttpMessageHandler httpMessageHandler = null)
        {
            var deliveryHttpClient = new DeliveryHttpClient(httpMessageHandler != null ? httpMessageHandler.ToHttpClient() : MockHttp.ToHttpClient());
            var client             = new DeliveryClient(
                DeliveryOptionsFactory.Create(options),
                _mockModelProvider,
                _mockResiliencePolicyProvider,
                _mockTypeProvider,
                deliveryHttpClient,
                _serializer
                );

            return(client);
        }