Пример #1
0
        public async Task GetCommitsDiff_ShouldCallCorrectUrlAndResult()
        {
            var responseJson = Utilities.LoadFile(Paths.GetEnterpriseDataPath("GetCommitsDiffResponse.json"));
            var responseData = new NewtonsoftJsonSerializer().Deserialize <EnterpriseDiffResponse>(responseJson);

            var response = MockRepository.GenerateMock <IRestResponse <EnterpriseDiffResponse> >();

            response.Stub(x => x.Data).Return(responseData);

            var result = _restClient
                         .Capture()
                         .Args <IRestRequest, IRestResponse <EnterpriseDiffResponse> >(
                (s, req) => s.ExecuteTaskAsync <EnterpriseDiffResponse>(req), response);

            var commitDiff = await _sut.GetCommitsDiff("repoName", "owner", "9f0a336dc13893f8a73693267662a1b5835a3d87", "9f0a336dc13893f8a73693267662a1b5835a3d87");

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual($"projects/owner/repos/repoName/compare/diff", args.Resource);
                Assert.AreEqual(Method.GET, args.Method);
                Assert.AreEqual(args.Parameters[0].Name, "from");
                Assert.AreEqual(args.Parameters[0].Value, "9f0a336dc13893f8a73693267662a1b5835a3d87");
                Assert.AreEqual(args.Parameters[1].Name, "to");
                Assert.AreEqual(args.Parameters[1].Value, "9f0a336dc13893f8a73693267662a1b5835a3d87");

                var firstDiff = commitDiff.First();

                Assert.AreEqual(FileChangeType.Modified, firstDiff.Type);
                Assert.AreEqual(0, firstDiff.Deletions);
                Assert.AreEqual(0, firstDiff.Additions);
                Assert.AreEqual(1, firstDiff.Id);
                Assert.AreEqual("new2.txt", firstDiff.From);
                Assert.AreEqual("new4.txt", firstDiff.To);
                Assert.AreEqual("new2.txt", firstDiff.DisplayFileName);
                Assert.AreEqual(0, firstDiff.Chunks.Count);
            });
        }