public void Paging2Test() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var repository = repositoryContext.GetRepository <int, Customer>(); var customers = Customer.CreateMany(1000); foreach (var customer in customers) { repository.Add(customer); } var selectedCustomers = customers.Where(x => x.Id > 20000000).OrderByDescending(x => x.Email); var idList = selectedCustomers.Select(x => x.Id).Skip(15).Take(15).ToList(); var totalRecords = selectedCustomers.Count(); var totalPages = (totalRecords + 14) / 15; var pagedResult = repository.FindAll(c => c.Id > 20000000, new SortSpecification <int, Customer> { { x => x.Email, SortOrder.Descending } }, 2, 15); Assert.Equal(totalRecords, pagedResult.TotalRecords); Assert.Equal(totalPages, pagedResult.TotalPages); Assert.Equal(2, pagedResult.PageNumber); Assert.Equal(15, pagedResult.PageSize); Assert.True(CompareIds(idList, pagedResult.Select(x => x.Id).ToList())); } }
public void FindAllWithSortTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var repository = repositoryContext.GetRepository <int, Customer>(); var customers = Customer.CreateMany(500); foreach (var cust in customers) { repository.Add(cust); } repositoryContext.Commit(); var sorted = customers.OrderBy(x => x.Email).OrderByDescending(x => x.Name).ToList(); var result = repository.FindAll(x => true, new SortSpecification <int, Customer> { { _ => _.Email, SortOrder.Ascending }, { _ => _.Name, SortOrder.Descending } }).ToList(); bool match = true; var total = sorted.Count(); for (var i = 0; i < total; i++) { if (sorted[i].Email != result[i].Email || sorted[i].Name != result[i].Name) { match = false; break; } } Assert.True(match); } }
public void Save2AggregateRootsTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var customers = Customer.CreateMany(2); var repository = repositoryContext.GetRepository <int, Customer>(); customers.ToList().ForEach(customer => repository.Add(customer)); repositoryContext.Commit(); var customersCount = repository.FindAll().Count(); Assert.Equal(2, customersCount); } }
public void SaveAggregateRootTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var customer = Customer.CreateOne(1, "Sunny Chen", "*****@*****.**"); var repository = repositoryContext.GetRepository <int, Customer>(); repository.Add(customer); repositoryContext.Commit(); var customersCount = repository.FindAll().Count(); Assert.Equal(1, customersCount); } }
public void FindAllTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var repository = repositoryContext.GetRepository <int, Customer>(); var customers = Customer.CreateMany(1000); foreach (var cust in customers) { repository.Add(cust); } repositoryContext.Commit(); var result = repository.FindAll(); Assert.Equal(1000, result.Count()); } }
public void UpdateByKeyTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var customer = Customer.CreateOne(1, "Sunny Chen", "*****@*****.**"); var repository = repositoryContext.GetRepository <int, Customer>(); repository.Add(customer); repositoryContext.Commit(); customer.Email = "*****@*****.**"; repository.UpdateByKey(1, customer); repositoryContext.Commit(); var updatedCustomer = repository.FindByKey(1); Assert.Equal("*****@*****.**", updatedCustomer.Email); } }
public void FindAllWithPredicateTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var repository = repositoryContext.GetRepository <int, Customer>(); var customers = Customer.CreateMany(500); foreach (var cust in customers) { repository.Add(cust); } repositoryContext.Commit(); var subset = customers.Where(x => x.Id > 1000000); var result = repository.FindAll(x => x.Id > 1000000); Assert.Equal(subset.Count(), result.Count()); } }
public void AddTest() { // Arrange var cache = new List <Customer>(); this.fixture.MongoCollection.Reset(); this.fixture.MongoCollection.Setup(x => x.InsertOne(It.IsAny <Customer>(), It.IsAny <InsertOneOptions>(), It.IsAny <CancellationToken>())) .Callback <Customer, InsertOneOptions, CancellationToken>((t, u, v) => cache.Add(t)); // Act var mockMongoRepositoryContext = new MongoRepositoryContext(this.fixture.MongoClient.Object, "mockDatabase"); var mongoRepository = mockMongoRepositoryContext.GetRepository <int, Customer>(); mongoRepository.Add(new Customer { Id = 10 }); // Assert Assert.Single(cache); Assert.Equal(10, cache[0].Id); }
public void PagingTest() { using (var repositoryContext = new MongoRepositoryContext(this.fixture.Settings)) { var repository = repositoryContext.GetRepository <int, Customer>(); var customers = Customer.CreateMany(21); foreach (var customer in customers) { repository.Add(customer); } var idList = customers.OrderBy(x => x.Email).Select(x => x.Id).Skip(5).Take(5).ToList(); var pagedResult = repository.FindAll(new SortSpecification <int, Customer> { { x => x.Email, SortOrder.Ascending } }, 2, 5); Assert.Equal(21, pagedResult.TotalRecords); Assert.Equal(5, pagedResult.TotalPages); Assert.Equal(2, pagedResult.PageNumber); Assert.Equal(5, pagedResult.PageSize); Assert.True(CompareIds(idList, pagedResult.Select(x => x.Id).ToList())); } }