public async Task GetCommitsDiff_ShouldCallCorrectUrlAndResult() { var responseTxt = Utilities.LoadFile(Paths.GetStandardDataPath("GetCommitsDiffResponse.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 commitDiff = await _sut.GetCommitsDiff("repoName", "owner", "9f0a336dc13893f8a73693267662a1b5835a3d87", "9f0a336dc13893f8a73693267662a1b5835a3d84"); Assert.AreEqual(1, result.CallCount); var args = result.Args[0]; Assert.Multiple(() => { Assert.AreEqual("repositories/owner/repoName/diff/9f0a336dc13893f8a73693267662a1b5835a3d87..9f0a336dc13893f8a73693267662a1b5835a3d84", args.Resource); Assert.AreEqual(Method.GET, args.Method); var firstDiff = commitDiff.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 firstChange = firstDiff.Chunks.First().Changes.First(); Assert.AreEqual("+wqdqwdwqd", firstChange.Content); Assert.AreEqual(1, firstChange.Index); Assert.AreEqual(1, firstChange.NewIndex); Assert.AreEqual(null, firstChange.OldIndex); Assert.AreEqual(LineChangeType.Add, firstChange.Type); }); }