public async Task DbSetMock_AutoMapperProjectTo()
        {
            Mapper.Initialize(cfg => {
                cfg.CreateMap <User, UserModel>()
                .ForMember(d => d.Name, opt => opt.MapFrom(s => s.FullName));
            });

            var dbSetMock = new DbSetMock <User>(new[]
            {
                new User {
                    Id = Guid.NewGuid(), FullName = "Fake Drake"
                },
                new User {
                    Id = Guid.NewGuid(), FullName = "Jackira Spicy"
                }
            }, (x, _) => x.Id);
            var dbSet = dbSetMock.Object;

            Assert.That(await dbSet.CountAsync(), Is.EqualTo(2));

            var models = await dbSet
                         .Where(u => u.FullName != null)
                         .ProjectTo <UserModel>()
                         .ToListAsync();

            Assert.That(models.Count, Is.EqualTo(2));
        }
Ejemplo n.º 2
0
        public RepositoryTests()
        {
            var initialCities = new List <City>();

            _mockContext     = new DbContextMock <CityWeatherContainer>();
            _mockCitiesDbSet = _mockContext.CreateDbSetMock(x => x.Cities, initialCities);
        }
Ejemplo n.º 3
0
        public async Task GetByPredicateTestAsync()
        {
            //Arrange
            var expectation = new DummyDataModel {
                Id = 1, ATableColumn = "expected"
            };
            var dummyCollection = new List <DummyDataModel>
            {
                expectation,
                new DummyDataModel {
                    Id = 2, ATableColumn = "not expected"
                }
            };

            var mockDbSet     = new DbSetMock <DummyDataModel>(dummyCollection, (k, c) => k.Id, true);
            var mockDbContext = Mock.Of <DbContext>(MockBehavior.Strict);

            Mock.Get(mockDbContext)
            .Setup(db => db.Set <DummyDataModel>())
            .Returns(mockDbSet.Object);

            //Act
            var repo   = new Repository <DummyDataModel>(mockDbContext);
            var actual = await repo.GetByPredicateAsync(dummy => dummy.ATableColumn == expectation.ATableColumn);

            //Assert
            actual.Should().BeEquivalentTo(expectation);
            Mock.Get(mockDbContext).Verify();
        }
        public void DbSetMock_Include_ShouldForwardProvider()
        {
            var dbSetMock = new DbSetMock <Order>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.Include(x => x.User).Provider, Is.EqualTo(((IQueryable <Order>)dbSet).Provider));
        }
Ejemplo n.º 5
0
        public void DbSetMock_GivenEntityRangeIsAdded_ShouldAddAfterCallingSaveChanges()
        {
            // Arrange
            var users = new List <User>()
            {
                new User()
                {
                    Id = Guid.NewGuid(), FullName = "Ian Kilmister"
                },
                new User()
                {
                    Id = Guid.NewGuid(), FullName = "Phil Taylor"
                },
                new User()
                {
                    Id = Guid.NewGuid(), FullName = "Eddie Clarke"
                }
            };
            var dbSetMock = new DbSetMock <User>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.Count(), Is.EqualTo(0));

            // Act
            dbSet.AddRange(users);
            ((IDbSetMock)dbSetMock).SaveChanges();

            // Assert
            var firstUser = users.First();

            Assert.That(dbSet.Count(), Is.EqualTo(3));
            Assert.That(dbSet.Any(x => x.Id == firstUser.Id &&
                                  x.FullName == firstUser.FullName), Is.True);
        }
Ejemplo n.º 6
0
        public void DbSetMock_SaveChanges_GivenEntityPropertyMarkedAsNotMapped_ShouldNotMarkNotMappedPropertyAsModified()
        {
            var dbSetMock = new DbSetMock <NestedModel>(new[]
            {
                new NestedModel {
                    Id = Guid.NewGuid(), NesteDocument = new NestedModel.Document()
                },
                new NestedModel {
                    Id = Guid.NewGuid(), NesteDocument = new NestedModel.Document()
                },
                new NestedModel {
                    Id = Guid.NewGuid(), NesteDocument = new NestedModel.Document()
                }
            }, (x, _) => x.Id);

            SavedChangesEventArgs <NestedModel> eventArgs = null;

            dbSetMock.SavedChanges += (sender, args) => eventArgs = args;

            dbSetMock.Object.First().Value = "abc";

            ((IDbSetMock)dbSetMock).SaveChanges();

            Assert.That(eventArgs, Is.Not.Null);
            Assert.That(eventArgs.UpdatedEntities, Has.Length.EqualTo(1));
            Assert.That(eventArgs.UpdatedEntities.First().UpdatedProperties, Has.Length.EqualTo(1));
            var updatedProperty = eventArgs.UpdatedEntities.First().UpdatedProperties.First();

            Assert.That(updatedProperty.Name, Is.EqualTo("Value"));
            Assert.That(updatedProperty.Original, Is.EqualTo(null));
            Assert.That(updatedProperty.New, Is.EqualTo("abc"));
        }
        public void DbSetMock_AsNoTracking_ShouldForwardProvider()
        {
            var dbSetMock = new DbSetMock <Order>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.AsNoTracking().Provider, Is.EqualTo(((IQueryable <Order>)dbSet).Provider));
        }
Ejemplo n.º 8
0
        public void DbSetMock_AsNoTracking_ShouldBeMocked()
        {
            var dbSetMock = new DbSetMock <Order>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.AsNoTracking(), Is.EqualTo(dbSet));
        }
Ejemplo n.º 9
0
        public void DbSetMock_AsQueryable_ShouldReturnQueryable()
        {
            var dbSetMock = new DbSetMock <Order>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.AsQueryable(), Is.Not.Null);
        }
Ejemplo n.º 10
0
        public void DbSetMock_Include_ShouldBeMocked()
        {
            var dbSetMock = new DbSetMock <Order>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.Include(x => x.User), Is.EqualTo(dbSet));
        }
Ejemplo n.º 11
0
        public async Task PagedList_LastPageTest()
        {
            //Arrange
            var contracts = GetContracts().AsQueryable();

            var mockDbSet = new DbSetMock <Contract>(contracts, (c, _) => c.Id, true);

            var mockRepo = Mock.Of <IRepository <Contract> >(MockBehavior.Strict);

            Mock.Get(mockRepo)
            .Setup(r => r.GetMany(It.IsAny <Expression <Func <Contract, bool> > >()))
            .Returns(mockDbSet.Object);

            //Act
            var result = await mockDbSet.Object.ToPagedList(4, 5);

            //Assert
            result.HasPreviousPage.Should().BeTrue();
            result.HasNextPage.Should().BeFalse();
            result.PageSize.Should().Be(5);
            result.PageSize.Should().Be(result.Items.Count());
            result.NextPageNumber.Should().BeNull();
            result.PreviousPageNumber.Should().Be(3);
            result.TotalCount.Should().Be(20);
        }
Ejemplo n.º 12
0
        public void TestUserServiceAddCorrect()
        {
            // Arrange
            RegisterModel registerModel = new RegisterModel()
            {
                UserName = "******",
                Email    = "*****@*****.**",
                Password = "******"
            };
            var mockContext = new DbContextMock <GameContext>("111");
            var mset        = new DbSetMock <IdentityUser>(_userScoreDb, (u, _) => u.Id);

            mockContext.Setup(ctx => ctx.Users).Returns(mset.Object);
            mockContext.Setup(ctx => ctx.Set <IdentityUser>()).Returns(mset.Object);
            //var mockDbSet = mockContext.CreateDbSetMock<IdentityUser>(c =>
            //(System.Data.Entity.DbSet<IdentityUser>)c.Users, (i, _) => i.Id , _userScoreDb);
            UserManager <IdentityUser> userManager = new UserManager <IdentityUser>
                                                         (new UserStore <IdentityUser>(mockContext.Object));

            // Act
            UserService userService = new UserService(mockContext.Object, userManager);
            var         result      = userService.AddUser(registerModel);

            // Assert
            Assert.IsTrue(result.IsSuccess);
            Assert.IsTrue(_userScoreDb.Count == 1);
        }
Ejemplo n.º 13
0
        public void DbSetMock_GivenRangeOfEntitiesIsRemoved_ShouldRemoveAfterCallingSaveChanges()
        {
            var users = new[]
            {
                new User {
                    Id = Guid.NewGuid(), FullName = "User 1"
                },
                new User {
                    Id = Guid.NewGuid(), FullName = "User 2"
                },
                new User {
                    Id = Guid.NewGuid(), FullName = "User 3"
                }
            };
            var dbSetMock = new DbSetMock <User>(users, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(dbSet.Count(), Is.EqualTo(3));
            dbSet.RemoveRange(users.Skip(1));
            Assert.That(dbSet.Count(), Is.EqualTo(3));
            ((IDbSetMock)dbSetMock).SaveChanges();
            Assert.That(dbSet.Count(), Is.EqualTo(1));
            Assert.That(dbSet.Any(x => x.FullName == "User 1"), Is.True);
            Assert.That(dbSet.Any(x => x.FullName == "User 2"), Is.False);
        }
Ejemplo n.º 14
0
        public void DbSetMock_Empty_AsEnumerable_ShouldReturnEmptyEnumerable()
        {
            var dbSetMock    = new DbSetMock <NestedModel>(new List <NestedModel>(), (x, _) => x.Id);
            var nestedModels = dbSetMock.Object.AsEnumerable();

            Assert.That(nestedModels, Is.Not.Null);
            Assert.That(nestedModels, Is.Empty);
        }
Ejemplo n.º 15
0
        private DbContextMock <EmergenceDbContext> GetMockEmergenceDbContext(IEnumerable <Specimen> specimens)
        {
            var mockContext        = new DbContextMock <EmergenceDbContext>();
            var specimensDbSetMock = new DbSetMock <Specimen>(specimens, (s, _) => s.Id, asyncQuerySupport: true);

            mockContext.Setup(c => c.Set <Specimen>()).Returns(specimensDbSetMock.Object);
            return(mockContext);
        }
Ejemplo n.º 16
0
        public async Task Page_When_PageNumber_Of_PageSize_Does_Not_Exist_Return_Empty_Queryable()
        {
            var todoItems  = DbSetMock.Create(TodoItems(2, 3, 1)).Object;
            var repository = GetRepository();

            var result = await repository.PageAsync(todoItems, 2, 3);

            Assert.Empty(result);
        }
Ejemplo n.º 17
0
        public async Task Page_When_PageNumber_Is_Negative_Returns_PageNumberTh_Page_From_End(int pageSize, int pageNumber, int[] expectedIds)
        {
            var todoItems  = DbSetMock.Create(TodoItems(1, 2, 3, 4, 5, 6, 7, 8, 9)).Object;
            var repository = GetRepository();

            var result = await repository.PageAsync(todoItems, pageSize, pageNumber);

            Assert.Equal(TodoItems(expectedIds), result, new IdComparer <TodoItem>());
        }
Ejemplo n.º 18
0
        public async Task Page_When_PageNumber_Is_Zero_Pretends_PageNumber_Is_One()
        {
            var todoItems  = DbSetMock.Create(TodoItems(2, 3, 1)).Object;
            var repository = GetRepository();

            var result = await repository.PageAsync(todoItems, 1, 0);

            Assert.Equal(TodoItems(2), result, new IdComparer <TodoItem>());
        }
Ejemplo n.º 19
0
        public async Task Page_When_PageSize_Is_NonPositive_Does_Nothing(int pageSize)
        {
            var todoItems  = DbSetMock.Create(TodoItems(2, 3, 1)).Object;
            var repository = GetRepository();

            var result = await repository.PageAsync(todoItems, pageSize, 3);

            Assert.Equal(TodoItems(2, 3, 1), result, new IdComparer <TodoItem>());
        }
        public async Task GetContractRemindersAsync_ReturnsExpectedResultTest()
        {
            //Arrange
            int reminderInterval      = 14;
            int pageNumber            = 1;
            int pageSize              = 1;
            ContractSortOptions sort  = ContractSortOptions.LastUpdatedAt;
            SortDirection       order = SortDirection.Asc;
            DateTime            currentDateTimeMinusNumberOfDays = DateTime.UtcNow.Date.AddDays(-reminderInterval).AddHours(23).AddMinutes(59);
            const string        ContractNumber = "expected-contract-number";
            var createdAt             = DateTime.UtcNow.AddDays(-30);
            var lastEmailReminderSent = DateTime.UtcNow.AddDays(-15);

            var contracts = new List <Contract>()
            {
                new Contract {
                    Id = 1, ContractNumber = ContractNumber, ContractVersion = 1, LastEmailReminderSent = null, Status = 0, FundingType = 1, CreatedAt = createdAt
                },
                new Contract {
                    Id = 2, ContractNumber = ContractNumber, ContractVersion = 2, LastEmailReminderSent = lastEmailReminderSent, Status = 0, FundingType = 1, CreatedAt = createdAt
                },
                new Contract {
                    Id = 3, ContractNumber = ContractNumber, ContractVersion = 3, LastEmailReminderSent = lastEmailReminderSent, Status = 0, FundingType = 1, CreatedAt = createdAt
                },
                new Contract {
                    Id = 4, ContractNumber = ContractNumber, ContractVersion = 4, LastEmailReminderSent = null, Status = 0, FundingType = 1, CreatedAt = createdAt
                },
            };

            var contractsExpected = new List <Contract>()
            {
                new Contract {
                    Id = 1, ContractNumber = ContractNumber, ContractVersion = 1, LastEmailReminderSent = null, Status = 0, FundingType = 1, CreatedAt = createdAt
                },
            };
            var pagedListExpected = new PagedList <Contract>(contractsExpected, 4, pageNumber, pageSize);

            var mockDbSet = new DbSetMock <Contract>(contracts, (c, _) => c.Id, true);

            var mockUnitOfWork = Mock.Of <IUnitOfWork>(MockBehavior.Strict);
            var mockRepo       = Mock.Of <IRepository <Contract> >(MockBehavior.Strict);

            Mock.Get(mockRepo)
            .Setup(r => r.GetMany(It.IsAny <Expression <Func <Contract, bool> > >()))
            .Returns(mockDbSet.Object);

            //Act
            var contractRepo = new ContractRepository(mockRepo, mockUnitOfWork, _mockLogger.Object);
            var actual       = await contractRepo.GetContractRemindersAsync(currentDateTimeMinusNumberOfDays, pageNumber, pageSize, sort, order);

            //Assert
            actual.Should().BeEquivalentTo(pagedListExpected);
            Mock.Get(mockRepo)
            .Verify(r => r.GetMany(q => ((q.LastEmailReminderSent == null && currentDateTimeMinusNumberOfDays >= q.CreatedAt) || (q.LastEmailReminderSent != null && currentDateTimeMinusNumberOfDays >= q.LastEmailReminderSent)) && q.Status == (int)ContractStatus.PublishedToProvider), Times.Exactly(1));
            _mockLogger.VerifyAll();
        }
Ejemplo n.º 21
0
        public void DbSetMock_FindOnCompositeValueTupleKey_ShouldReturnRequestedModel()
        {
            Guid modelId1 = Guid.NewGuid(), modelId2 = Guid.NewGuid();
            var  dbSetMock = new DbSetMock <NoKeyModel>(new[]
            {
                new NoKeyModel {
                    ModelId = modelId1, Value = "Value 1"
                },
                new NoKeyModel {
                    ModelId = modelId2, Value = "Value 2"
                }
            }, (x, _) => (x.ModelId, x.Value));

            var result = dbSetMock.Object.Find(modelId2, "Value 2");

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ModelId, Is.EqualTo(modelId2));
            Assert.That(result.Value, Is.EqualTo("Value 2"));
        }
Ejemplo n.º 22
0
        public void Setup()
        {
            _dbSet           = new DbSetMock <Meeting>();
            _contextMock     = new Mock <MeetMeDbContext>();
            _meetingRepoMock = new Mock <MeetingRepository>();

            _meetings = new List <Meeting>();

            _meetingRepoMock.Object._context = _contextMock.Object;
        }
Ejemplo n.º 23
0
        public void DeleteCallsRemoveOnDbSet()
        {
            SetUpDbSet(new List <Instrument>());

            var response = Browser.Delete("/exchanges/1", BrowserCtx);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            DbSetMock.Verify(x => x.Remove(It.Is <Exchange>(e => e.ID == 1)));
        }
        public void Setup()
        {
            _dbSet                   = new DbSetMock <ConnectionNotification>();
            _contextMock             = new Mock <MeetMeDbContext>();
            _connectionNotifRepoMock = new Mock <ConnectionNotificationRepository>();

            _connectionNotifs = new List <ConnectionNotification>();

            _connectionNotifRepoMock.Object._context = _contextMock.Object;
        }
        public void Setup()
        {
            _dbSet        = new DbSetMock <User>();
            _contextMock  = new Mock <MeetMeDbContext>();
            _userRepoMock = new Mock <UserRepository>();

            _users = new List <User>();

            _userRepoMock.Object._context = _contextMock.Object;
        }
Ejemplo n.º 26
0
        public void DbSetMock_SaveChanges_GivenAbstractEntityModel_ShouldNotThrowException()
        {
            var dbSetMock = new DbSetMock <AbstractModel>(new[]
            {
                new ConcreteModel {
                    Id = Guid.NewGuid()
                }
            }, (x, _) => x.Id);

            ((IDbSetMock)dbSetMock).SaveChanges();
        }
Ejemplo n.º 27
0
        public async Task UserRepositoryEFTest_GetAll()
        {
            var users     = UserDummyGenerator.GenerateCollection(5);
            var mockDbSet = DbSetMock <User> .GetMockAndSetUpQueryble(users);

            var mockDbContext = DbContextMock <DbContext> .GetMockAndSetUpDbSet(mockDbSet);

            var mockUnitOfWork   = UnitOfWorkMock.GetMockAndSetUpContext(mockDbContext);
            var userRepositoryEF = new UserRepositoryEF(mockUnitOfWork.Object);
            var resultUsers      = await userRepositoryEF.GetAllAsync();

            Assert.True(Enumerable.SequenceEqual(users.OrderBy(t => t.UserId), resultUsers.OrderBy(t => t.UserId), new UserComparer()));
        }
Ejemplo n.º 28
0
        public void Setup()
        {
            _dbSet         = new DbSetMock <Event>();
            _dbMeetingSet  = new DbSetMock <Meeting>();
            _dbRequestsSet = new DbSetMock <MeetingRequest>();
            _contextMock   = new Mock <MeetMeDbContext>();
            _eventRepoMock = new Mock <EventRepository>();

            _events          = new List <Event>();
            _meetings        = new List <Meeting>();
            _meetingRequests = new List <MeetingRequest>();

            _eventRepoMock.Object._context = _contextMock.Object;
        }
Ejemplo n.º 29
0
 public DefaultEntityRepository_Tests()
 {
     _todoItem = new TodoItem
     {
         Id          = 1,
         Description = Guid.NewGuid().ToString(),
         Ordinal     = 10
     };
     _jsonApiContextMock  = new Mock <IJsonApiContext>();
     _loggFactoryMock     = new Mock <ILoggerFactory>();
     _dbSetMock           = DbSetMock.Create <TodoItem>(new[] { _todoItem });
     _contextMock         = new Mock <DbContext>();
     _contextResolverMock = new Mock <IDbContextResolver>();
 }
Ejemplo n.º 30
0
        public async Task DbSetMock_AsyncProvider()
        {
            var user = new User {
                Id = Guid.NewGuid(), FullName = "Fake Drake"
            };
            var dbSetMock = new DbSetMock <User>(null, (x, _) => x.Id);
            var dbSet     = dbSetMock.Object;

            Assert.That(await dbSet.CountAsync(), Is.EqualTo(0));
            dbSet.Add(user);
            Assert.That(await dbSet.CountAsync(), Is.EqualTo(0));
            ((IDbSetMock)dbSetMock).SaveChanges();
            Assert.That(await dbSet.CountAsync(), Is.EqualTo(1));
            Assert.That(await dbSet.AnyAsync(x => x.Id == user.Id && x.FullName == user.FullName), Is.True);
        }