public void AddsCommentToCorrectDeletedLine()
        {
            var apiClient = CreateApiClient();
            var session   = CreateSession();
            var file      = CreateFile();

            file.Diff.Returns(new[]
            {
                new DiffChunk
                {
                    Lines =
                    {
                        new DiffLine {
                            OldLineNumber = 17, DiffLineNumber = 7
                        }
                    }
                }
            });

            var target = new NewInlineCommentThreadViewModel(apiClient, session, file, 16, true);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            apiClient.Received(1).CreatePullRequestReviewComment(
                "owner",
                "repo",
                47,
                "New Comment",
                "COMMIT_SHA",
                "file.cs",
                7);
        }
コード例 #2
0
        public void AddsCommentToCorrectDeletedLine()
        {
            var session = CreateSession();
            var file    = CreateFile();

            file.Diff.Returns(new[]
            {
                new DiffChunk
                {
                    Lines =
                    {
                        new DiffLine {
                            OldLineNumber = 17, DiffLineNumber = 7
                        }
                    }
                }
            });

            var target = new NewInlineCommentThreadViewModel(session, file, 16, true);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            session.Received(1).PostReviewComment(
                "New Comment",
                "COMMIT_SHA",
                "file.cs",
                Arg.Any <IReadOnlyList <DiffChunk> >(),
                7);
        }
コード例 #3
0
        public void CreatesReplyPlaceholder()
        {
            var target = new NewInlineCommentThreadViewModel(
                Substitute.For <IPullRequestSession>(),
                Substitute.For <IPullRequestSessionFile>(),
                10,
                false);

            Assert.That(target.Comments, Has.One.Items);
            Assert.That(string.Empty, Is.EqualTo(target.Comments[0].Body));
            Assert.That(CommentEditState.Editing, Is.EqualTo(target.Comments[0].EditState));
        }
        public void AddsPostedCommentToSession()
        {
            var apiClient = CreateApiClient();
            var session   = CreateSession();
            var file      = CreateFile();
            var target    = new NewInlineCommentThreadViewModel(apiClient, session, file, 10, false);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            session.Received(1).AddComment(Arg.Any <IPullRequestReviewCommentModel>());
        }
コード例 #5
0
        public void CreatesReplyPlaceholder()
        {
            var target = new NewInlineCommentThreadViewModel(
                Substitute.For <IPullRequestSession>(),
                Substitute.For <IPullRequestSessionFile>(),
                10,
                false);

            Assert.Single(target.Comments);
            Assert.Equal(string.Empty, target.Comments[0].Body);
            Assert.Equal(CommentEditState.Editing, target.Comments[0].EditState);
        }
コード例 #6
0
        public void PostsCommentToCorrectAddedLine()
        {
            var session = CreateSession();
            var file    = CreateFile();
            var target  = new NewInlineCommentThreadViewModel(session, file, 10, false);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            session.Received(1).PostReviewComment(
                "New Comment",
                "COMMIT_SHA",
                "file.cs",
                5);
        }
コード例 #7
0
        public void SignalsFinishedWhenCommentPosted()
        {
            var session   = CreateSession();
            var file      = CreateFile();
            var target    = new NewInlineCommentThreadViewModel(session, file, 10, false);
            var signalled = false;

            target.Finished.Subscribe(_ => signalled = true);
            Assert.False(signalled);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            Assert.True(signalled);
        }
コード例 #8
0
        public void PostsCommentToCorrectAddedLine()
        {
            var session = CreateSession();
            var file    = CreateFile();
            var target  = new NewInlineCommentThreadViewModel(
                Substitute.For <ICommentService>(),
                session, file, 10, false);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            session.Received(1).PostReviewComment(
                "New Comment",
                "COMMIT_SHA",
                "file.cs",
                Arg.Any <IReadOnlyList <DiffChunk> >(),
                5);
        }
        public void PostsCommentToCorrectAddedLine()
        {
            var apiClient = CreateApiClient();
            var session   = CreateSession();
            var file      = CreateFile();
            var target    = new NewInlineCommentThreadViewModel(apiClient, session, file, 10, false);

            target.Comments[0].Body = "New Comment";
            target.Comments[0].CommitEdit.Execute(null);

            apiClient.Received(1).CreatePullRequestReviewComment(
                "owner",
                "repo",
                47,
                "New Comment",
                "COMMIT_SHA",
                "file.cs",
                5);
        }
コード例 #10
0
        public void PlaceholderCommitEnabledWhenCommentHasBodyAndPostCommentIsEnabled()
        {
            var file   = CreateFile();
            var target = new NewInlineCommentThreadViewModel(
                Substitute.For <IPullRequestSession>(),
                file,
                10,
                false);

            file.CommitSha.Returns((string)null);
            RaisePropertyChanged(file, nameof(file.CommitSha));
            Assert.That(target.Comments[0].CommitEdit.CanExecute(null), Is.False);

            target.Comments[0].Body = "Foo";
            Assert.That(target.Comments[0].CommitEdit.CanExecute(null), Is.False);

            file.CommitSha.Returns("COMMIT_SHA");
            RaisePropertyChanged(file, nameof(file.CommitSha));
            Assert.That(target.Comments[0].CommitEdit.CanExecute(null), Is.True);
        }
コード例 #11
0
        public void NeedsPushTracksFileCommitSha()
        {
            var file   = CreateFile();
            var target = new NewInlineCommentThreadViewModel(
                Substitute.For <IPullRequestSession>(),
                file,
                10,
                false);

            Assert.That(target.NeedsPush, Is.False);
            Assert.That(target.PostComment.CanExecute(false), Is.True);

            file.CommitSha.Returns((string)null);
            RaisePropertyChanged(file, nameof(file.CommitSha));
            Assert.That(target.NeedsPush, Is.True);
            Assert.That(target.PostComment.CanExecute(false), Is.False);

            file.CommitSha.Returns("COMMIT_SHA");
            RaisePropertyChanged(file, nameof(file.CommitSha));
            Assert.That(target.NeedsPush, Is.False);
            Assert.That(target.PostComment.CanExecute(false), Is.True);
        }