public void Put_RequestHasNoId_ThrowsException()
        {
            // Given
            var response = new RequestResponse {
                Item = new Request {
                    Subject = "blah blah"
                }
            };
            var request = new RequestRequest {
                Item = new Request {
                    Subject = "blah blah"
                }
            };

            _client.Setup(b => b.Put <RequestResponse>(
                              It.IsAny <Uri>(),
                              request,
                              "application/json",
                              It.IsAny <string>(),
                              It.IsAny <string>()))
            .Returns(response);

            var requestResource = new RequestResource(_client.Object);

            // When, Then
            Assert.Throws <ArgumentException>(() => requestResource.Put(request));
        }
        public void Put_CalledWithRequest_ReturnsRequestReponse()
        {
            // Given
            var response = new RequestResponse {
                Item = new Request {
                    Subject = "blah blah"
                }
            };
            var request = new RequestRequest {
                Item = new Request {
                    Subject = "blah blah", Id = 123
                }
            };

            _client.Setup(b => b.Put <RequestResponse>(
                              It.IsAny <Uri>(),
                              request,
                              "application/json",
                              It.IsAny <string>(),
                              It.IsAny <string>()))
            .Returns(response);

            var resource = new RequestResource(_client.Object);

            // When
            var result = resource.Put(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public void Put_Called_BuildsUri()
        {
            // Given
            var request = new RequestRequest { Item = new Request { Subject = "blah blah", Id = 123 } };
            var resource = new RequestResource(_client.Object);

            // When
            resource.Put(request);

            // Then
            _client.Setup(b => b.BuildUri(It.IsAny<string>(), ""));
        }
        public void Put_Called_BuildsUri()
        {
            // Given
            var request = new RequestRequest {
                Item = new Request {
                    Subject = "blah blah", Id = 123
                }
            };
            var resource = new RequestResource(_client.Object);

            // When
            resource.Put(request);

            // Then
            _client.Setup(b => b.BuildUri(It.IsAny <string>(), ""));
        }
        public void Put_RequestHasNoId_ThrowsException()
        {
            // Given
            var response = new RequestResponse { Item = new Request { Subject = "blah blah" } };
            var request = new RequestRequest { Item = new Request { Subject = "blah blah" } };
            _client.Setup(b => b.Put<RequestResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response);
            var requestResource = new RequestResource(_client.Object);

            // When, Then
            Assert.Throws<ArgumentException>(() => requestResource.Put(request));
        }
        public void Put_CalledWithRequest_ReturnsRequestReponse()
        {
            // Given
            var response = new RequestResponse { Item = new Request { Subject = "blah blah" } };
            var request = new RequestRequest { Item = new Request { Subject = "blah blah", Id = 123 } };
            _client.Setup(b => b.Put<RequestResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response);
            var resource = new RequestResource(_client.Object);

            // When
            var result = resource.Put(request);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }