private async Task AddToFavouriteAsync(string articleId, string userId)
        {
            var clientArticleLike = new ClientArticleLike()
            {
                ClientId  = userId,
                ArticleId = articleId,
            };

            await this.clientArticleLikesRepository.AddAsync(clientArticleLike);
        }
        public async Task CheckGettingClientsFavouriteArtilcesAndCountAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <Article>(db);
            var clientArticleLikesRepository = new EfRepository <ClientArticleLike>(db);

            var service = new ArticlesService(
                repository,
                this.commentsRepository.Object,
                clientArticleLikesRepository,
                this.cloudinaryService.Object);

            var firstArticleId = await this.GetArticleAsync(service);

            var secondArticleId = await this.GetArticleAsync(service);

            var articleLike = new ClientArticleLike()
            {
                ClientId  = this.client.Id,
                ArticleId = firstArticleId,
            };
            var articleLikeSecond = new ClientArticleLike()
            {
                ClientId  = this.client.Id,
                ArticleId = secondArticleId,
            };

            await clientArticleLikesRepository.AddAsync(articleLike);

            await clientArticleLikesRepository.AddAsync(articleLikeSecond);

            await clientArticleLikesRepository.SaveChangesAsync();

            var articles = await service.GetUsersFavouriteArticlesAsync <TestClientArticleLikesModel>(this.client.Id);

            var count = await service.GetLikesCountAsync(firstArticleId);

            Assert.Equal(2, articles.Count());
            Assert.Equal(1, count);
        }
        public async Task CheckDeletingArticleAsync()
        {
            ApplicationDbContext db = GetDb();

            var repository = new EfDeletableEntityRepository <Article>(db);
            var clientArticleLikesRepository = new EfRepository <ClientArticleLike>(db);
            var commentsRepository           = new EfDeletableEntityRepository <Comment>(db);

            var service = new ArticlesService(
                repository,
                commentsRepository,
                clientArticleLikesRepository,
                this.cloudinaryService.Object);

            string articleId = await this.GetArticleAsync(service);

            var article = await repository.All().FirstOrDefaultAsync(a => a.Id == articleId);

            article.Comments.Add(this.comment);

            var articleLike = new ClientArticleLike()
            {
                ClientId  = this.client.Id,
                ArticleId = articleId,
            };

            await clientArticleLikesRepository.AddAsync(articleLike);

            await clientArticleLikesRepository.SaveChangesAsync();

            repository.Update(article);
            await repository.SaveChangesAsync();

            await service.DeleteAsync(articleId);

            Assert.True(article.IsDeleted);
        }