private UserManager <User> CreateUserManager(Action <UserManager <User> > options) { var dbContext = new LightTownTestContext(); dbContext.Database.EnsureDeleted(); var userManager = new UserManager <User>(new UserStore <User, Role, LightTownTestContext, int>(dbContext), null, null, null, null, null, null, null, null); options.Invoke(userManager); return(userManager); }
public static void SetupRepositoryMock <T>(this Mock <Repository <T> > repositoryMock, Action <IRepository <T> > options) where T : BaseEntity { var context = new LightTownTestContext(); context.Database.EnsureDeleted(); var constructorArguments = repositoryMock.GetType().GetField("constructorArguments", BindingFlags.NonPublic | BindingFlags.Instance); constructorArguments?.SetValue(repositoryMock, new object[] { context }); repositoryMock.Protected().SetupGet <DbSet <T> >("Entities").Returns(context.Set <T>()); repositoryMock.Setup(repository => repository.Table).Returns(context.Set <T>()); repositoryMock.Setup(repository => repository.TableNoTracking).Returns(context.Set <T>().AsNoTracking); options.Invoke(repositoryMock.Object); context.SaveChanges(); }
public void ModifyUserTagsTest(int userId, int[] changedTags, int[] expectedTags) { //Arrange var user = new User { Id = userId }; var tag1 = new Tag { Id = 1 }; var tag2 = new Tag { Id = 2 }; var tag3 = new Tag { Id = 3 }; var tag4 = new Tag { Id = 4 }; var tag5 = new Tag { Id = 5 }; var tag6 = new Tag { Id = 6 }; var userTag1 = new UserTag { TagId = 1, Tag = tag1, UserId = 1 }; var userTag2 = new UserTag { TagId = 3, Tag = tag3, UserId = 1 }; var userTag3 = new UserTag { TagId = 5, Tag = tag5, UserId = 1 }; var userTag4 = new UserTag { TagId = 2, Tag = tag2, UserId = 2 }; var userTag5 = new UserTag { TagId = 4, Tag = tag4, UserId = 2 }; var userTag6 = new UserTag { TagId = 5, Tag = tag5, UserId = 2 }; var tags = changedTags.Select(tagId => new Core.Models.Tags.Tag { Id = tagId }).ToList(); var dbContext = new LightTownTestContext(); _tagRepository.SetupRepositoryMock(dbContext, options => { options.Insert(tag1); options.Insert(tag2); options.Insert(tag3); options.Insert(tag4); options.Insert(tag5); options.Insert(tag6); }); _tagService = new Mock <TagService>(_tagRepository.Object); _userTagRepository.SetupRepositoryMock(dbContext, options => { options.Insert(userTag1); options.Insert(userTag2); options.Insert(userTag3); options.Insert(userTag4); options.Insert(userTag5); options.Insert(userTag6); }); var userService = new UserService(null, _userTagRepository.Object, _tagRepository.Object, _tagService.Object); //Act var newTags = userService.ModifyUserTags(user, tags); var firstNotSecond = newTags.Select(tag => tag.Id).Except(expectedTags).ToList(); var secondNotFirst = expectedTags.Except(newTags.Select(tag => tag.Id)).ToList(); //Assert Assert.True(!firstNotSecond.Any() && !secondNotFirst.Any()); dbContext.Database.EnsureDeleted(); }