public void UKFastClientRequestException_SetsProperties()
        {
            UKFastClientRequestException ex = new UKFastClientRequestException(500, new List <ClientResponseError>()
            {
                new ClientResponseError()
            });

            Assert.AreEqual(500, ex.StatusCode);
            Assert.AreEqual(1, ex.Errors.Count());
        }
        public void Validate_UnxpectedStatusCode_ThrowsUKFastClientRequestException()
        {
            ClientResponse <object> response = new ClientResponse <object>()
            {
                StatusCode = 500
            };

            UKFastClientRequestException ex = Assert.ThrowsException <UKFastClientRequestException>(() => response.Validate(new int[] { 200 }));

            Assert.AreEqual(500, ex.StatusCode);
        }
        public void UKFastClientRequestException_EnumerableErrors_ExpectedMessage()
        {
            UKFastClientRequestException ex = new UKFastClientRequestException(500, new List <ClientResponseError>()
            {
                new ClientResponseError()
                {
                    Detail = "testdetail1"
                },
                new ClientResponseError()
                {
                    Detail = "testdetail2"
                }
            });

            Assert.AreEqual("Request failed with status code [500]: Title=[] Detail=[testdetail1] Status=[0] Source=[]; Title=[] Detail=[testdetail2] Status=[0] Source=[]", ex.Message);
        }
        public void Validate_UnxpectedStatusCodeWithBody_ThrowsUKFastClientRequestException()
        {
            ClientResponse <object> response = new ClientResponse <object>()
            {
                StatusCode = 500,
                Body       = new ClientResponseBody <object>()
                {
                    Errors = new List <ClientResponseError>()
                    {
                        new ClientResponseError()
                    }
                }
            };

            UKFastClientRequestException ex = Assert.ThrowsException <UKFastClientRequestException>(() => response.Validate(new int[] { 200 }));

            Assert.AreEqual(500, ex.StatusCode);
            Assert.AreEqual(1, ex.Errors.Count());
        }
        public void UKFastClientRequestException_NullErrors_ExpectedMessage()
        {
            UKFastClientRequestException ex = new UKFastClientRequestException(500, default(List <ClientResponseError>));

            Assert.AreEqual("Request failed with status code [500]: ", ex.Message);
        }