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)); }
public RepositoryTests() { var initialCities = new List <City>(); _mockContext = new DbContextMock <CityWeatherContainer>(); _mockCitiesDbSet = _mockContext.CreateDbSetMock(x => x.Cities, initialCities); }
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)); }
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); }
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)); }
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)); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }
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>()); }
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>()); }
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(); }
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")); }
public void Setup() { _dbSet = new DbSetMock <Meeting>(); _contextMock = new Mock <MeetMeDbContext>(); _meetingRepoMock = new Mock <MeetingRepository>(); _meetings = new List <Meeting>(); _meetingRepoMock.Object._context = _contextMock.Object; }
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; }
public void DbSetMock_SaveChanges_GivenAbstractEntityModel_ShouldNotThrowException() { var dbSetMock = new DbSetMock <AbstractModel>(new[] { new ConcreteModel { Id = Guid.NewGuid() } }, (x, _) => x.Id); ((IDbSetMock)dbSetMock).SaveChanges(); }
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())); }
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; }
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>(); }
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); }