public async Task GetPullRequestDiff_ShouldCallCorrectUrlAndResult() { var responseTxt = Utilities.LoadFile(Paths.GetStandardDataPath("GetPullRequestDiffResponse.txt")); responseTxt = responseTxt.Replace(Environment.NewLine, "\n"); var response = MockRepository.GenerateMock <IRestResponse>(); response.Stub(x => x.Content).Return(responseTxt); var result = _restClient .Capture() .Args <IRestRequest, IRestResponse>( (s, req) => s.ExecuteTaskAsync(req), response); var resultData = (await _sut.GetPullRequestDiff("repoName", "owner", 1)).ToList(); Assert.AreEqual(1, result.CallCount); var args = result.Args[0]; Assert.Multiple(() => { Assert.AreEqual("repositories/owner/repoName/pullrequests/1/diff", args.Resource); Assert.AreEqual(Method.GET, args.Method); Assert.AreEqual(1, resultData.Count()); var firstDiff = resultData.First(); Assert.AreEqual(FileChangeType.Add, firstDiff.Type); Assert.AreEqual(0, firstDiff.Deletions); Assert.AreEqual(1, firstDiff.Additions); Assert.AreEqual("/dev/null", firstDiff.From); Assert.AreEqual("NEWFILE", firstDiff.To); Assert.AreEqual("NEWFILE", firstDiff.DisplayFileName); Assert.AreEqual(1, firstDiff.Chunks.Count); var firstChunk = firstDiff.Chunks.First(); Assert.AreEqual("+wqdqwdwqd", firstChunk.Text); Assert.AreEqual(0, firstChunk.OldLines); Assert.AreEqual(0, firstChunk.NewLines); Assert.AreEqual("@@ -0,0 +1 @@", firstChunk.Content); Assert.AreEqual(1, firstChunk.Changes.Count); var firstChange = firstChunk.Changes.First(); Assert.AreEqual(1, firstChange.Index); Assert.AreEqual(null, firstChange.OldIndex); Assert.AreEqual(1, firstChange.NewIndex); Assert.AreEqual(LineChangeType.Add, firstChange.Type); }); }