示例#1
0
        public async void AddOrRemoveLike_AddLike()
        {
            Guid guid          = Guid.NewGuid();
            var  mockDbContext = new Mock <EntityModels.DatabaseContext>();
            var  mockDbSet     = new Mock <DbSet <Like> >();

            IQueryable <Like> data = new List <Like>()
            {
            }.AsQueryable();

            mockDbSet.As <IQueryable <Like> >().Setup(m => m.Provider).Returns(
                new TestAsyncQueryProvider <Like>(data.Provider)
                );
            mockDbSet.As <IQueryable <Like> >().Setup(m => m.Expression).Returns(data.Expression);
            mockDbSet.As <IQueryable <Like> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockDbSet.As <IQueryable <Like> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            mockDbContext.Setup(a => a.Likes).Returns(mockDbSet.Object);

            var likePost = new Like()
            {
                PostId = guid,
                UserId = guid
            };
            var likeComment = new Like()
            {
                CommentId = guid,
                UserId    = guid
            };

            mockDbSet
            .Setup(a => a.Add(likePost))
            .Returns(
                () =>
            {
                Assert.True(true);
                return(null);
            });
            mockDbSet
            .Setup(a => a.Add(likeComment))
            .Returns(
                () =>
            {
                Assert.True(true);
                return(null);
            });
            mockDbContext.Setup(a => a.Likes).Returns(mockDbSet.Object);

            var likeRepo = new LikeRepository(mockDbContext.Object);
            await likeRepo.AddOrRemoveLike(guid, new DomainModels.Post()
            {
                Id = guid
            });

            await likeRepo.AddOrRemoveLike(guid, new DomainModels.Comment()
            {
                Id = guid
            });
        }