public void TestsTakeAndDeleteUser() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var studentEfRepository = new EfRepository <StudentJob>(new ApplicationDbContext(options.Options)); var userSkillRepository = new EfRepository <UsersSkill>(new ApplicationDbContext(options.Options)); var jobRepository = new EfDeletableEntityRepository <Job>(new ApplicationDbContext(options.Options)); var jobService = new JobsService(jobRepository, studentEfRepository); var skillRepository = new EfDeletableEntityRepository <Skill>(new ApplicationDbContext(options.Options)); var skillService = new SkillsService(skillRepository, userSkillRepository); var usersService = new ApplicationUsersService(repository, jobService, studentEfRepository, jobRepository, skillService, userSkillRepository, skillRepository); var user = new ApplicationUser { Description = "test", Type = UserType.Employer, }; repository.AddAsync(user).GetAwaiter().GetResult(); repository.SaveChangesAsync().GetAwaiter().GetResult(); AutoMapperConfig.RegisterMappings(typeof(CompaniesServiceTests.MyTest).Assembly); usersService.DeleteAsync(user.Id).GetAwaiter().GetResult(); Assert.Empty(repository.All()); repository.Delete(user); repository.SaveChangesAsync().GetAwaiter().GetResult(); }
public void TestAddExistUserinSkill() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var studentEfRepository = new EfRepository <StudentJob>(new ApplicationDbContext(options.Options)); var userSkillRepository = new EfRepository <UsersSkill>(new ApplicationDbContext(options.Options)); var jobRepository = new EfDeletableEntityRepository <Job>(new ApplicationDbContext(options.Options)); var jobService = new JobsService(jobRepository, studentEfRepository); var skillRepository = new EfDeletableEntityRepository <Skill>(new ApplicationDbContext(options.Options)); var skillService = new SkillsService(skillRepository, userSkillRepository); var usersService = new ApplicationUsersService(repository, jobService, studentEfRepository, jobRepository, skillService, userSkillRepository, skillRepository); var user = new ApplicationUser { Description = "test", Type = UserType.Student, }; var skill = new Skill { Name = "test", }; skillRepository.AddAsync(skill).GetAwaiter().GetResult(); skillRepository.SaveChangesAsync().GetAwaiter().GetResult(); repository.AddAsync(user).GetAwaiter().GetResult(); repository.SaveChangesAsync().GetAwaiter().GetResult(); AutoMapperConfig.RegisterMappings(typeof(CompaniesServiceTests.MyTest).Assembly); Assert.Throws <ArgumentException>(() => usersService.AddSkillAsync(skill.Id, user.Id).GetAwaiter().GetResult()); }
public void TestGetCompaniesCount() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var studentEfRepository = new EfRepository <StudentJob>(new ApplicationDbContext(options.Options)); var userSkillRepository = new EfRepository <UsersSkill>(new ApplicationDbContext(options.Options)); var jobRepository = new EfDeletableEntityRepository <Job>(new ApplicationDbContext(options.Options)); var jobService = new JobsService(jobRepository, studentEfRepository); var skillRepository = new EfDeletableEntityRepository <Skill>(new ApplicationDbContext(options.Options)); var skillService = new SkillsService(skillRepository, userSkillRepository); var usersService = new ApplicationUsersService(repository, jobService, studentEfRepository, jobRepository, skillService, userSkillRepository, skillRepository); AutoMapperConfig.RegisterMappings(typeof(CompaniesServiceTests.MyTest).Assembly); var user = new ApplicationUser { FullName = "IvanIvanov", Email = "test@test", Type = UserType.Employer, }; repository.AddAsync(user); repository.SaveChangesAsync(); Assert.Equal(1, usersService.GetCompaniesCount()); repository.Delete(user); repository.SaveChangesAsync(); }
public void GetUserSubscribtionsWorksCorrectly() { var webtoons = new List <Webtoon>(); var webtoon = new Webtoon() { Id = "789", AuthorId = "test", Author = new ApplicationUser() { UserName = "******" }, Genre = new Genre() { Name = "action" }, Title = "work", TitleNumber = "123" }; webtoon.Subscribers.Add(new WebtoonsSubscribers() { SubscriberId = "456", WebtoonId = "789" }); var episode = new Episode() { Id = "012", WebtoonId = "789", EpisodeLikes = new List <EpisodeLike>(), }; episode.EpisodeLikes.Add(new EpisodeLike() { EpisodeId = "012", ApplicationUserId = "ivan", HasLiked = true }); webtoon.Episodes.Add(episode); webtoons.Add(webtoon); var mockWebtoonsRepo = new Mock <IWebtoonsRepository>(); mockWebtoonsRepo.Setup(x => x.All()).Returns(webtoons.AsQueryable()); var mockEpisodesRepo = new Mock <IEpisodesRepository>(); mockEpisodesRepo.Setup(x => x.GetEpisodesByWebtoonId("789")).Returns(webtoon.Episodes); var mockEpisodeLikesService = new Mock <IEpisodesLikesService>(); mockEpisodeLikesService.Setup(x => x.GetEpisodeLikes("012")).Returns(episode.EpisodeLikes.Sum(x => x.HasLiked ? 1 : 0)); var service = new ApplicationUsersService(mockWebtoonsRepo.Object, null, null, null, mockEpisodeLikesService.Object, mockEpisodesRepo.Object); var result = service.GetUserSubscribtions("456"); Assert.Equal("pesho", result.First().Author); Assert.Equal(1, result.First().Episodes.Count); Assert.Equal("action", result.First().Genre); Assert.Equal("work", result.First().Title); Assert.Equal("123", result.First().TitleNumber); Assert.Equal(1, result.First().Likes); }
public void GetNewUsersCountShouldReturnCorrectNumber() { var repository = GetMockedRepository(); var service = new ApplicationUsersService(repository.Object); Assert.Equal(2, service.GetNewUsersCount()); repository.Verify(x => x.AllAsNoTracking(), Times.Once); }
public void GetUserReviewsWorksCorrectly() { var reviews = new List <Review>(); var dateTime = new DateTime(1994, 01, 01); var review = new Review() { Id = "012", ReviewAuthorId = "gosho", ReviewNumber = "123", ReviewInfo = "work", CreatedOn = dateTime, WebtoonId = "456", Webtoon = new Webtoon() { Title = "test", TitleNumber = "789" }, ReviewVotes = new List <ReviewVote>() }; var reviewVote = new ReviewVote() { ApplicationUserId = "ivan", ReviewId = "012", Vote = MyWebtoonWebProject.Data.Models.Enums.VoteType.UpVote }; review.ReviewVotes.Add(reviewVote); reviews.Add(review); var mockReviewRepo = new Mock <IReviewsRepository>(); mockReviewRepo.Setup(x => x.All()).Returns(reviews.AsQueryable()); var service = new ApplicationUsersService(null, mockReviewRepo.Object, null, null, null, null); var result = service.GetUserReviews("gosho"); Assert.Equal(new DateTime(1994, 01, 01), result.First().CreatedOn); Assert.Equal(0, result.First().Dislikes); Assert.Equal(1, result.First().Likes); Assert.Equal("gosho", result.First().ReviewAuthorId); Assert.Equal("123", result.First().ReviewNumber); Assert.Equal("789", result.First().WebtoonTitleNumber); Assert.Equal("test", result.First().WebtoonTitle); Assert.Equal("work", result.First().ReviewInfo); }
public void DeleteSkill() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var studentEfRepository = new EfRepository <StudentJob>(new ApplicationDbContext(options.Options)); var userSkillRepository = new EfRepository <UsersSkill>(new ApplicationDbContext(options.Options)); var jobRepository = new EfDeletableEntityRepository <Job>(new ApplicationDbContext(options.Options)); var jobService = new JobsService(jobRepository, studentEfRepository); var skillRepository = new EfDeletableEntityRepository <Skill>(new ApplicationDbContext(options.Options)); var skillService = new SkillsService(skillRepository, userSkillRepository); var usersService = new ApplicationUsersService(repository, jobService, studentEfRepository, jobRepository, skillService, userSkillRepository, skillRepository); var user = new ApplicationUser { FullName = "Gosho" }; var skill = new Skill { Name = "C#", }; var userSkill = new UsersSkill { SkillId = skill.Id, ApplicationUserId = user.Id, }; repository.AddAsync(user).GetAwaiter().GetResult(); repository.SaveChangesAsync().GetAwaiter().GetResult(); skillRepository.AddAsync(skill).GetAwaiter().GetResult(); skillRepository.SaveChangesAsync().GetAwaiter().GetResult(); userSkillRepository.AddAsync(userSkill).GetAwaiter().GetResult(); userSkillRepository.SaveChangesAsync(); userSkillRepository.Delete(userSkill); skillService.DeleteAsync(skill.Id, user.Id).GetAwaiter().GetResult(); Assert.Equal(1, skillRepository.All().Count()); }
public void TestNoUsers() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options)); var studentEfRepository = new EfRepository <StudentJob>(new ApplicationDbContext(options.Options)); var userSkillRepository = new EfRepository <UsersSkill>(new ApplicationDbContext(options.Options)); var jobRepository = new EfDeletableEntityRepository <Job>(new ApplicationDbContext(options.Options)); var jobService = new JobsService(jobRepository, studentEfRepository); var skillRepository = new EfDeletableEntityRepository <Skill>(new ApplicationDbContext(options.Options)); var skillService = new SkillsService(skillRepository, userSkillRepository); var usersService = new ApplicationUsersService(repository, jobService, studentEfRepository, jobRepository, skillService, userSkillRepository, skillRepository); AutoMapperConfig.RegisterMappings(typeof(CompaniesServiceTests.MyTest).Assembly); Assert.Empty(usersService.GetAll <CompaniesServiceTests.MyTest>()); }
public ApplicationUserController(ApplicationUsersService service) { _service = service; }
public void GetUserCommentsWorksCorrectly() { var comments = new List <Comment>(); var comment = new Comment() { CommentAuthorId = "gosho", CommentInfo = "test", CommentNumber = "123", Id = "456", CreatedOn = new DateTime(1994, 01, 01), Episode = new Episode() { EpisodeNumber = "789", Webtoon = new Webtoon() { Title = "works", TitleNumber = "012", } }, CommentVotes = new List <CommentVote>(), }; var commentVote = new CommentVote() { CommentId = "456", ApplicationUserId = "ivan", Vote = MyWebtoonWebProject.Data.Models.Enums.VoteType.UpVote }; var secondCommentVote = new CommentVote() { CommentId = "456", ApplicationUserId = "pesho", Vote = MyWebtoonWebProject.Data.Models.Enums.VoteType.DownVote }; comment.CommentVotes.Add(commentVote); comment.CommentVotes.Add(secondCommentVote); comments.Add(comment); var mockCommentsRepo = new Mock <ICommentsRepository>(); mockCommentsRepo.Setup(x => x.All()).Returns(comments.AsQueryable()); var mockCommentsVote = new Mock <ICommentsVotesRepository>(); var commentVotes = new List <CommentVote>(); commentVotes.Add(commentVote); commentVotes.Add(secondCommentVote); var service = new ApplicationUsersService(null, null, mockCommentsRepo.Object, mockCommentsVote.Object, null, null); var result = service.GetUserComments("gosho"); Assert.Equal("gosho", result.First().CommentAuthorId); Assert.Equal("456", result.First().CommentId); Assert.Equal("test", result.First().CommentInfo); Assert.Equal("123", result.First().CommentNumber); Assert.Equal(2, result.First().CommentVotes.Count); Assert.Equal(new DateTime(1994, 01, 01), result.First().CreatedOn); Assert.Equal(1, result.First().Likes); Assert.Equal(1, result.First().Dislikes); Assert.Equal("789", result.First().EpisodeNumber); Assert.Equal("works", result.First().WebtoonTitle); Assert.Equal("012", result.First().WebtoonTitleNumber); }