Example #1
0
        public void Create_Empty()
        {
            var result = RevisionDetailViewModel.Create(new Commit(), new CommitDiff(0), new Comment[] {});

            Assert.IsNotNull(result);
            Assert.IsEmpty(result.RevisedFileDetails);
        }
Example #2
0
        public void Create_One_FileDiff_No_Likes()
        {
            CommitDiff cd = CreateCommitDiff(0);
            FileDiff   fd = AddFileDiff(cd, "file1");

            AddLineDiff(fd, ChangeState.Added, "line0");
            AddLineDiff(fd, ChangeState.Removed, "line1");

            var result = RevisionDetailViewModel.Create(new Commit(), cd, new Comment[] { });

            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.RevisedFileDetails.Count());
            Assert.AreEqual(2, result.RevisedFileDetails.First().LineDetails.Count());
        }
Example #3
0
        public void Create_With_Commented_Line()
        {
            var cd1  = CreateCommitDiff(1);
            var f1   = AddFileDiff(cd1, "file1");
            var l1f1 = AddLineDiff(f1, ChangeState.Added, "text");
            var l2f1 = AddLineDiff(f1, ChangeState.Added, "text");

            var cd2  = CreateCommitDiff(2);
            var f2   = AddFileDiff(cd2, "file1");
            var l1f2 = AddLineDiff(f2, ChangeState.Added, "text");
            var l2f2 = AddLineDiff(f2, ChangeState.Added, "text");

            var result = RevisionDetailViewModel.Create(new Commit(), cd1, new Comment[] { });

            Assert.AreEqual(0, result.RevisedFileDetails.SelectMany(file => file.LineDetails).Count(line => line.Comments.Count() > 0));

            var comment = CommentLine(f2, l1f2, "bob", "comment");

            result = RevisionDetailViewModel.Create(new Commit(), cd2, new Comment[] { comment });
            Assert.AreEqual(1, result.RevisedFileDetails.SelectMany(file => file.LineDetails).Count(line => line.Comments.Count() > 0));
        }
Example #4
0
        public IHttpActionResult GetRevision(long revision)
        {
            RevisionDetailViewModel viewModel = null;

            UnitOfWork unitOfWork = null;

            try
            {
                unitOfWork = new UnitOfWork();

                var commitDiff = new SourceControl().GetRevision(revision);

                var commentQuery = new CommentQuery(unitOfWork.Context.Comments)
                {
                    Revision = revision
                };

                var comments = commentQuery.Execute();

                // merge data to view model efficiently

                Commit commit = unitOfWork.Context.Commits.FirstOrDefault(c => c.Revision == revision);

                viewModel = RevisionDetailViewModel.Create(commit, commitDiff, comments);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.TraceError("GetRevision: " + ex);
                return(InternalServerError(ex));
            }
            finally
            {
                if (unitOfWork != null)
                {
                    unitOfWork.Dispose();
                }
            }

            return(Ok(viewModel));
        }
Example #5
0
        public void Create_Order_By_File_Name()
        {
            var cd1  = CreateCommitDiff(1);
            var f1   = AddFileDiff(cd1, "Test/Show/By/Filename/CTheSecondone");
            var l1f1 = AddLineDiff(f1, ChangeState.Added, "text");
            var l2f1 = AddLineDiff(f1, ChangeState.Added, "text");

            var f2   = AddFileDiff(cd1, "Test/Show/By/Filename/ZTheLastone");
            var l1f2 = AddLineDiff(f2, ChangeState.Added, "text");
            var l2f2 = AddLineDiff(f2, ChangeState.Added, "text");

            var f3   = AddFileDiff(cd1, "Test/Show/By/Filename/ATheFirstone");
            var l1f3 = AddLineDiff(f2, ChangeState.Added, "text");
            var l2f3 = AddLineDiff(f2, ChangeState.Added, "text");

            var result = RevisionDetailViewModel.Create(new Commit(), cd1, new Comment[] { });

            var fileList = result.RevisedFileDetails.ToList();

            Assert.AreEqual(3, fileList.Count);
            Assert.IsTrue(fileList[0].Filename.CompareTo(fileList[1].Filename) < 0);
            Assert.IsTrue(fileList[1].Filename.CompareTo(fileList[2].Filename) < 0);
        }