public async Task DeleteAsyncShouldThrowNullException()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "AddAsync").Options;
            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <Comment>(dbContext);
            var service    = new CommentsService(repository);

            await Assert.ThrowsAsync <ArgumentNullException>(() => service.DeleteAsync(-5));
        }
示例#2
0
        public async Task DeleteAsync_ShouldWorkCorrectlyAsync()
        {
            var context = WilderExperienceContextInMemoryFactory.InitializeContext();

            await this.SeedData(context);

            var repository = new EfDeletableEntityRepository <Comment>(context);
            var service    = new CommentsService(repository);

            var commentId = context.Comments.FirstOrDefault().Id;

            await service.DeleteAsync(commentId);

            var deletedExperinece = repository.AllWithDeleted().Where(x => x.Id == commentId).FirstOrDefault();

            Assert.True(deletedExperinece.IsDeleted == true, "Delete method does not work correctly");
        }
示例#3
0
        public async Task CheckDeletingCommentAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <Comment>(db);
            var service    = new CommentsService(repository);

            await this.PrepareCommentAsync(service);

            var comment = await repository
                          .All()
                          .FirstOrDefaultAsync(c => c.Content == "test content");

            await service.DeleteAsync(comment.Id);

            Assert.True(comment.IsDeleted);
        }
        public async Task DeleteAsyncShouldWork()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "DeleteAsync").Options;
            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <Comment>(dbContext);
            var service    = new CommentsService(repository);

            await service.AddAsync("content", new ApplicationUser(), new Post());

            Assert.True(repository.All().Any(x => x.Content == "content"));
            Assert.Single(service.GetAll());

            await service.DeleteAsync(1);

            Assert.Empty(service.GetAll());
        }
示例#5
0
        public async Task DeleteAsync_WithValidCommentId_ShouldDeleteCommentFromDatabase()
        {
            // Arrange
            var context            = InMemoryDbContext.Initiliaze();
            var commentsRepository = new EfDeletableEntityRepository <Comment>(context);
            var postsRepository    = new EfRepository <Post>(context);
            var service            = new CommentsService(commentsRepository, postsRepository);

            await this.SeedUsersAndPost(context);

            await this.SeedComments(context);

            // Act
            int expectedCount = context.Comments.Count() - 1;
            await service.DeleteAsync(26); // Id is seeded with SeedComment method.

            int actualCount = context.Comments.Count();

            // Assert
            Assert.Equal(expectedCount, actualCount);
        }
示例#6
0
        public async Task DeleteAsyncShouldReturnTrue()
        {
            var comments = new List <Comment>();

            var mockCommentRepo = new Mock <IDeletableEntityRepository <Comment> >();

            mockCommentRepo.Setup(x => x.All()).Returns(comments.AsQueryable());
            mockCommentRepo.Setup(x => x.AddAsync(It.IsAny <Comment>())).Callback((Comment comm) => comments.Add(comm));

            var service = new CommentsService(mockCommentRepo.Object, null, null);

            var commentToDelete = new Comment
            {
                Id     = "1",
                UserId = "1",
            };

            comments.Add(commentToDelete);
            await service.DeleteAsync("1", "1");

            Assert.Equal(true, commentToDelete.IsDeleted);
        }
示例#7
0
        public async Task DeleteShouldReturnFalse()
        {
            var comments = new List <Comment>();

            var mockCommentRepo = new Mock <IDeletableEntityRepository <Comment> >();

            mockCommentRepo.Setup(x => x.All()).Returns(comments.AsQueryable());
            mockCommentRepo.Setup(x => x.AddAsync(It.IsAny <Comment>())).Callback((Comment comm) => comments.Add(comm));

            var service = new CommentsService(mockCommentRepo.Object, null, null);

            var commentToDelete = new Comment
            {
                Id     = "1",
                UserId = "1",
            };

            comments.Add(commentToDelete);
            Task result = service.DeleteAsync("2", "1");

            Assert.True(!result.IsCompletedSuccessfully);
        }
示例#8
0
        public async Task DeleteAsyncWorkCorrectly()
        {
            var comment = new Comment()
            {
                Text           = "test",
                UserId         = "a",
                AnnouncementId = "1",
            };
            var obj = await this.dbContext.Comments.AddAsync(comment);

            var commentId = obj.Entity.Id;

            await this.dbContext.SaveChangesAsync();

            var service = new CommentsService(this.commentRepository);
            var result  = service.GetCommentByUserId <CommentInputModel>("a");

            Assert.Equal(1, result?.Count());
            await service.DeleteAsync(commentId);

            result = service.GetCommentByUserId <CommentInputModel>("a");
            Assert.Equal(0, result?.Count());
        }