public void TestValidateResponse_ServerReturnsNfieldErrorCodeAndMessage_ThrowsNfieldErrorExceptionWithErrorCodeAndMessage()
        {
            // Arrange
            const HttpStatusCode httpStatusCode = HttpStatusCode.NotFound;
            const NfieldErrorCode nfieldErrorCode = NfieldErrorCode.ArgumentIsNull;
            const string message = "Message #1";

            var serverResponse = new HttpResponseMessage(httpStatusCode);
            var httpErrorMock = new Dictionary<string, object>()
                {
                    { "NfieldErrorCode", nfieldErrorCode },
                    { "Message", message }
                };
            HttpContent content = new ObjectContent<Dictionary<string, object>>(httpErrorMock, new JsonMediaTypeFormatter());
            serverResponse.Content = content;

            // Act
            Assert.ThrowsDelegate actCode = () => serverResponse.ValidateResponse();

            // Assert
            var ex = Assert.Throws<NfieldErrorException>(actCode);
            Assert.Equal(ex.HttpStatusCode, httpStatusCode);
            Assert.Equal(ex.NfieldErrorCode, nfieldErrorCode);
            Assert.Equal(ex.Message, message);
        }
        public void TestValidateResponse_ServerReturnsOnlyHttpStatusCode_ThrowsNfieldHttpResponseException()
        {
            // Arrange
            const HttpStatusCode httpStatusCode = HttpStatusCode.NotFound;
            var serverResponse = new HttpResponseMessage(httpStatusCode);

            // Act
            Assert.ThrowsDelegate actCode = () => serverResponse.ValidateResponse();

            // Assert
            var ex = Assert.Throws<NfieldHttpResponseException>(actCode);
            Assert.Equal(ex.HttpStatusCode, httpStatusCode);
        }
        public void TestValidateResponse_ServerReturnsSucces_DontThrow()
        {
            // Arrange
            const HttpStatusCode httpStatusCode = HttpStatusCode.OK; // Succes
            var serverResponse = new HttpResponseMessage(httpStatusCode);

            // Act
            Assert.ThrowsDelegate actCode = () => serverResponse.ValidateResponse();

            // Assert
            Assert.DoesNotThrow(actCode);
        }