public async Task FindComments()
        {
            _mockContext.Setup(m => m.Comments).Returns(GetQueryableAsyncMockDbSet <Comment>(
                                                            new Comment()
            {
                Id   = 1,
                User = "******"
            },
                                                            new Comment()
            {
                Id   = 2,
                User = "******"
            },
                                                            new Comment()
            {
                Id   = 3,
                User = "******"
            }));

            var commentRepo   = new EntityFrameworkCommentRepository(_mockContext.Object);
            var foundComments = await commentRepo.FindAsync(c => c.User == "Second");

            var idLessThanThreeComments = await commentRepo.FindAsync(c => c.Id < 3);

            Assert.AreEqual(foundComments.Count(), 1);
            Assert.AreEqual(foundComments.First().Id, 2);
            Assert.AreEqual(idLessThanThreeComments.Count(), 2);
        }
        public void CreateCommentViaContext()
        {
            var commentRepo = new EntityFrameworkCommentRepository(_mockContext.Object);

            commentRepo.Add(new Comment());

            _mockCommentsSet.Verify(m => m.Add(It.IsAny <Comment>()), Times.Once);
        }
        public void DeleteCommentViaContext()
        {
            _mockCommentsSet.Setup(m => m.Find(It.Is <int>(arg => arg == 0))).Returns(new Comment());

            var commentRepo = new EntityFrameworkCommentRepository(_mockContext.Object);

            commentRepo.Delete(0);

            _mockCommentsSet.Verify(m => m.Remove(It.IsAny <Comment>()), Times.Once);
        }
        public void UpdateCommentViaContext()
        {
            var commentRepo = new EntityFrameworkCommentRepository(_mockContext.Object);

            commentRepo.Update(new Comment()
            {
                Id = 0
            });

            _mockContext.Verify(m => m.SetModified(It.IsAny <Comment>()), Times.Once);
        }
        public void GetComment()
        {
            _mockContext.Setup(m => m.Comments).Returns(GetQueryableMockDbSet(
                                                            new Comment()
            {
                Id   = 1,
                User = "******"
            },
                                                            new Comment()
            {
                Id   = 2,
                User = "******"
            }));
            var commentRepo = new EntityFrameworkCommentRepository(_mockContext.Object);
            var comment     = commentRepo.Get(2);

            Assert.AreEqual(comment.User, "Second");
        }
        public async Task GetAllComments()
        {
            _mockContext.Setup(m => m.Comments).Returns(GetQueryableAsyncMockDbSet <Comment>(
                                                            new Comment()
            {
                Id   = 1,
                User = "******"
            },
                                                            new Comment()
            {
                Id   = 2,
                User = "******"
            },
                                                            new Comment()
            {
                Id   = 3,
                User = "******"
            }));

            var commentRepo = new EntityFrameworkCommentRepository(_mockContext.Object);
            var allComments = await commentRepo.GetAllAsync();

            Assert.AreEqual(allComments.Count(), 3);
        }