Пример #1
0
        public async Task GetPullRequestDiff_ShouldCallCorrectUrlAndResult()
        {
            var responseJson = Utilities.LoadFile(Paths.GetEnterpriseDataPath("GetPullRequestDiffResponse.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 resultData = (await _sut.GetPullRequestDiff("repoName", "owner", 1)).ToList();

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("projects/owner/repos/repoName/pull-requests/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(2, firstDiff.Additions);
                Assert.AreEqual(null, firstDiff.From);
                Assert.AreEqual("new4.txt", firstDiff.To);
                Assert.AreEqual("new4.txt", firstDiff.DisplayFileName);
                Assert.AreEqual(1, firstDiff.Chunks.Count);

                var firstChunk = firstDiff.Chunks.First();

                Assert.AreEqual("asdkopasdkapskdoasd\r\nasdasd", firstChunk.Text);
                Assert.AreEqual(0, firstChunk.OldLines);
                Assert.AreEqual(0, firstChunk.NewLines);
                Assert.AreEqual(null, firstChunk.Content);
                Assert.AreEqual(2, firstChunk.Changes.Count);

                var firstChange = firstChunk.Changes.First();

                Assert.AreEqual(0, firstChange.Index);
                Assert.AreEqual(null, firstChange.OldIndex);
                Assert.AreEqual(1, firstChange.NewIndex);
                Assert.AreEqual(LineChangeType.Add, firstChange.Type);
            });
        }