public async Task UserLikeAsync(string episodeId, string userId) { var userLike = this.episodesLikesRepository.All().FirstOrDefault(e => e.EpisodeId == episodeId && e.ApplicationUserId == userId); if (userLike == null) { var like = new EpisodeLike { EpisodeId = episodeId, ApplicationUserId = userId, HasLiked = true, }; await this.episodesLikesRepository.AddAsync(like); } else { if (userLike.HasLiked == false) { userLike.HasLiked = true; } else { userLike.HasLiked = false; } } await this.episodesLikesRepository.SaveChangesAsync(); }
public void GetEpisodeLikesWorksCorrectly() { var episodeLikes = new List <EpisodeLike>(); var mockEpisodeLikeRepo = new Mock <IEpisodesLikesRepository>(); mockEpisodeLikeRepo.Setup(x => x.All()).Returns(episodeLikes.AsQueryable()); var episode = new Episode() { Id = "test123", }; var episodeLike = new EpisodeLike() { EpisodeId = "test123", ApplicationUserId = "pesho", HasLiked = true, }; episode.EpisodeLikes.Add(episodeLike); episodeLikes.Add(episodeLike); var service = new EpisodesLikesService(mockEpisodeLikeRepo.Object); var result = service.GetEpisodeLikes("test123"); Assert.Equal(1, result); }