public void Post_CalledWithRating_ReturnsUserReponse()
        {
            // Given
            var response = new SatisfactionRatingResponse {
                Item = new SatisfactionRating {
                    Score = SatisfactionRatingScore.good
                }
            };
            var request = new SatisfactionRatingRequest {
                Item = new SatisfactionRating {
                    Score = SatisfactionRatingScore.good
                }
            };

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

            var resource = new SatisfactionRatingResource(_client.Object);

            // When
            var result = resource.Post(request, 21);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public void Post_Called_BuildsUri()
        {
            // Given
            var request = new SatisfactionRatingRequest { Item = new SatisfactionRating { Score = SatisfactionRatingScore.good } };
            var resource = new SatisfactionRatingResource(_client.Object);

            // When
            resource.Post(request, 231);

            // Then
            _client.Setup(b => b.BuildUri(It.IsAny<string>(), ""));
        }
        public void Post_MultipleMethodsAreCalled_CalledUrlIsCorrect()
        {
            // Given
            _client.Setup(b => b.BuildUri(It.IsAny <string>(), It.Is <string>(s => s.Contains("321")))).Returns(new Uri("http://zendesk"));
            var resource = new SatisfactionRatingResource(_client.Object);

            // When
            resource.Get(321);
            resource.Post(new SatisfactionRatingRequest(), 1);

            // Then
            _client.Verify(c => c.BuildUri(It.Is <string>(s => s.Contains("/tickets/1")), ""));
        }
        public void Post_MultipleMethodsAreCalled_CalledUrlIsCorrect()
        {
            // Given
            _client.Setup(b => b.BuildUri(It.IsAny<string>(), It.Is<string>(s => s.Contains("321")))).Returns(new Uri("http://zendesk"));
            var resource = new SatisfactionRatingResource(_client.Object);

            // When
            resource.Get(321);
            resource.Post(new SatisfactionRatingRequest(), 1);

            // Then
            _client.Verify(c => c.BuildUri(It.Is<string>(s => s.Contains("/tickets/1")), ""));
        }
        public void Post_CalledWithRating_ReturnsUserReponse()
        {
            // Given
            var response = new SatisfactionRatingResponse { Item = new SatisfactionRating { Score = SatisfactionRatingScore.good } };
            var request = new SatisfactionRatingRequest { Item = new SatisfactionRating { Score = SatisfactionRatingScore.good } };
            _client.Setup(b => b.Post<SatisfactionRatingResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response);
            var resource = new SatisfactionRatingResource(_client.Object);

            // When
            var result = resource.Post(request, 21);

            // Then
            Assert.That(result, Is.EqualTo(response));
        }
        public void Post_Called_BuildsUri()
        {
            // Given
            var request = new SatisfactionRatingRequest {
                Item = new SatisfactionRating {
                    Score = SatisfactionRatingScore.good
                }
            };
            var resource = new SatisfactionRatingResource(_client.Object);

            // When
            resource.Post(request, 231);

            // Then
            _client.Setup(b => b.BuildUri(It.IsAny <string>(), ""));
        }