コード例 #1
0
        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);
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
        }