protected async Task <OneTimePaymentModel> GetOneTimePaymentModel()
        {
            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Api-Version", VersioningHandler.DEFAULT_API_VERSION);
            client.DefaultRequestHeaders.Add("Authorization", $"Simple {Configuration.Token}");

            var cardDetailsModel = new Dictionary <string, string>
            {
                { "cardNumber", "4976000000003436" },
                { "expiryDate", "1220" },
                { "cV2", "452" },
            };
            var message = new HttpRequestMessage
            {
                Content    = new StringContent(JsonConvert.SerializeObject(cardDetailsModel), Encoding.UTF8, "application/json"),
                Method     = HttpMethod.Post,
                RequestUri = new Uri(JudoPaymentsFactory.GetEnvironmentUrl(Configuration.JudoEnvironment) + "/encryptions/paymentdetails")
            };

            var response = await client.SendAsync(message);

            var oneUseTokenModel = JsonConvert.DeserializeObject <OneUseTokenModel>(await response.Content.ReadAsStringAsync());

            return(new OneTimePaymentModel
            {
                OneUseToken = oneUseTokenModel.OneUseToken,
                JudoId = Configuration.Judoid,
                YourConsumerReference = Guid.NewGuid().ToString(),
                Amount = 25,
                CardAddress = new CardAddressModel
                {
                    Line1 = "32 Edward Street",
                    PostCode = "TR14 8PA",
                    Town = "Camborne"
                }
            });
        }
        public void GetEnvironmentUrl(JudoEnvironment judoEnvironment, string expectedUrl)
        {
            var result = JudoPaymentsFactory.GetEnvironmentUrl(judoEnvironment);

            Assert.AreEqual(expectedUrl, result);
        }