// Tests a repository can deal with an entity type which has nested child relationships // e.g. Grandparent -> Parent -> Child public async Task Repository_NestedChildRelation_Insert_GetByID() { base.ClearAll(); var grandParentEntityIn = _fixture.Create <GrandParentEntity>(); var grandParentEntity2In = _fixture.Create <GrandParentEntity>(); var repository = new GrandParentEntityRepository(_dataService); // Insert records await repository.InsertAsync(grandParentEntityIn); await repository.InsertAsync(grandParentEntity2In); // Get the first entity back by id var grandParentEntityOut = await repository.GetByIDAsync(grandParentEntityIn.ID); CheckEntityTreesAreSame(grandParentEntityIn, grandParentEntityOut); }
public async Task Repository_NestedChildRelation_InsertMany_GetAll() { base.ClearAll(); var repository = new GrandParentEntityRepository(_dataService); // Insert records List <GrandParentEntity> grandParentEntitiesIn = _fixture.CreateMany <GrandParentEntity>().ToList(); await repository.InsertAsync(grandParentEntitiesIn); // Get all the entities out var grandParentEntitiesOut = (await repository.GetAllAsync()).ToList(); // Check that we got the same number of entities back out Assert.Equal(grandParentEntitiesIn.ToList().Count, grandParentEntitiesOut.ToList().Count); // Check down the hierarchy that property values line up for (int i = 0; i < grandParentEntitiesIn.Count; i++) { CheckEntityTreesAreSame(grandParentEntitiesIn[i], grandParentEntitiesOut[i]); } }
// Tests a repository can deal with an entity type which has nested child relationships // e.g. Grandparent -> Parent -> Child public async Task Repository_NestedChildRelation_DeleteAll() { base.ClearAll(); var grandParentEntityIn = _fixture.Create <GrandParentEntity>(); var repository = new GrandParentEntityRepository(_dataService); // Insert records await repository.InsertAsync(grandParentEntityIn); // DeleteAll await repository.DeleteAllAsync(); var asyncConnection = _dataService.GetAsyncDBConnection(); // Check the table and all its child tables are now empty Assert.Empty(await asyncConnection.Table <GrandParentEntity>().ToListAsync()); Assert.Empty(await asyncConnection.Table <ParentEntity>().ToListAsync()); Assert.Empty(await asyncConnection.Table <ChildEntity>().ToListAsync()); Assert.Empty(await asyncConnection.Table <ChildEntity2>().ToListAsync()); Assert.Empty(await asyncConnection.Table <SingleChildEntity>().ToListAsync()); }