public void GetList_AppliesNavigationProperties() { TestEntity testEntity = new TestEntity { Name = "Test Entity" }; testEntity.ChildEntities.Add(new TestChildEntity { Name = "Test Child Entity One" }); testEntity.ChildEntities.Add(new TestChildEntity { Name = "Test Child Entity Two" }); context.Entities.Add(testEntity); context.SaveChanges(); var repo = new DataRepositoryUsingTestPersistenceContext <TestEntity>(); IList <TestEntity> result = repo.GetList(navigationProperties: new Expression <Func <TestEntity, object> >[] { e => e.ChildEntities }); Assert.That(result[0].ChildEntities.Contains(testEntity.ChildEntities[0], testEntityEqComp), $"Child entity not loaded: {testEntity.ChildEntities[0].Name}"); Assert.That(result[0].ChildEntities.Contains(testEntity.ChildEntities[1], testEntityEqComp), $"Child entity not loaded: {testEntity.ChildEntities[1].Name}"); }
public void GetList_AppliesOrdering() { // Entities in order for an ordering of Field1 ASC, Field2 DESC, Field3 ASC. List <TestEntity> entitiesInOrder = new List <TestEntity> { new TestEntity { Name = "Entity One", Field1 = "1", Field2 = "d", Field3 = 1 }, new TestEntity { Name = "Entity Two", Field1 = "1", Field2 = "c", Field3 = 1 }, new TestEntity { Name = "Entity Three", Field1 = "1", Field2 = "b", Field3 = 1 }, new TestEntity { Name = "Entity Four", Field1 = "1", Field2 = "a", Field3 = 1 }, new TestEntity { Name = "Entity Five", Field1 = "2", Field2 = "y", Field3 = 42 }, new TestEntity { Name = "Entity Six", Field1 = "2", Field2 = "y", Field3 = 43 }, new TestEntity { Name = "Entity Seven", Field1 = "2", Field2 = "x", Field3 = 42 }, new TestEntity { Name = "Entity Eight", Field1 = "2", Field2 = "x", Field3 = 43 } }; // Insert entities into database in random order. context.Entities.AddRange(entitiesInOrder.Shuffled()); context.SaveChanges(); var repo = new DataRepositoryUsingTestPersistenceContext <TestEntity>(); IList <TestEntity> result = repo.GetList(orderBy: new OrderByDescription <TestEntity>[] { new OrderByDescription <TestEntity>(e => e.Field1, ListSortDirection.Ascending), new OrderByDescription <TestEntity>(e => e.Field2, ListSortDirection.Descending), new OrderByDescription <TestEntity>(e => e.Field3, ListSortDirection.Ascending), }); Assert.That(entitiesInOrder.SequenceEqual(result, testEntityEqComp), "Entities returned in incorrect order"); }
public void GetList_AppliesFiltering() { TestEntity entityOne = new TestEntity { Name = "Entity One", Field1 = "*" }; TestEntity entityTwo = new TestEntity { Name = "Entity Two", Field1 = "**" }; context.Entities.Add(entityOne); context.Entities.Add(entityTwo); context.SaveChanges(); var repo = new DataRepositoryUsingTestPersistenceContext <TestEntity>(); IList <TestEntity> result = repo.GetList(e => e.Field1.Length > 1); Assert.That(result.Contains(entityOne, testEntityEqComp) == false, $"Entity present that should have been excluded: {entityOne.Name}"); Assert.That(result.Contains(entityTwo, testEntityEqComp) == true, $"Entity excluded that should have been present: {entityTwo.Name}"); }