public void TestSendRequestGetInvalidResponse()
        {
            RequestGetObject rgo = new RequestGetObject();

            MockHandler.AddFakeResponse(
                new RestUrlBuilder(Url, rgo),
                HttpStatusCode.OK,
                "{{}{{}}\"]}"
                );

            ResultObject result = SendRequest <ResultObject, RequestGetObject, ErrorResultObject>(rgo);
        }
        public void TestSendRequest()
        {
            RequestGetObject rgo = new RequestGetObject();

            MockHandler.AddFakeResponse(
                new RestUrlBuilder(Url, rgo),
                HttpStatusCode.OK,
                "{\"Field1\":\"expectedValue\"}"
                );

            ResultObject result = SendRequest <ResultObject, RequestGetObject, ErrorResultObject>(rgo);

            Assert.AreEqual <string>("expectedValue", result.Field1);
        }
        public void TestSendRequestGetErrorResponseObject()
        {
            RequestPostObject rpo = new RequestPostObject();

            MockHandler.AddFakeResponse(
                new RestUrlBuilder(Url, rpo),
                HttpStatusCode.Unauthorized,
                "{\"ErrorMessage\":\"ErrorMessageValue\"}"
                );

            try
            {
                ResultObject result = SendRequest <ResultObject, RequestPostObject, ErrorResultObject>(rpo);
                Assert.Fail("Error Response Exception didn't get thrown.");
            }
            catch (RestErrorResponseException e)
            {
                Assert.IsTrue(e.Error is ErrorResultObject);

                ErrorResultObject errorObject = (ErrorResultObject)e.Error;

                Assert.AreEqual <string>("ErrorMessageValue", errorObject.ErrorMessage);
            }
        }