internal async Task<SimpleHttpResponse> SendAsync(SimpleHttpClient client, int expectedReturnStatus)
        {
            var result = await client.SendAsync();

            if (((int)result.StatusCode) != expectedReturnStatus)
            {
                // Check if we can deserialize the response
                CloudFoundryException cloudFoundryException;
                try
                {
                    string response = await result.Content.ReadAsStringAsync();
                    var exceptionObject = Utilities.DeserializeJson<CloudFoundryExceptionObject>(response);
                    cloudFoundryException = new CloudFoundryException(exceptionObject);
                    cloudFoundryException.Response = result;
                    throw cloudFoundryException;
                }
                catch (CloudFoundryException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    throw new CloudFoundryException(string.Format(CultureInfo.InvariantCulture, "An error occurred while talking to the server ({0})", result.StatusCode), ex);
                }
            }

            return result;
        }
        public void TestException()
        {
            CloudFoundryExceptionObject exceptionObject = new CloudFoundryExceptionObject();
            exceptionObject.Code = "object";
            exceptionObject.Description = "this is an exception";
            exceptionObject.ErrorCode = "errorCode";

            CloudFoundryException exception = new CloudFoundryException(exceptionObject);

            Assert.AreEqual(exception.Message, "this is an exception");
        }