public void TestGetParentChildRelationsByProcessID() { // db is empty using (var context = new ProTickDatabaseContext(dbOptions)) { var dbm = new DatabaseQueryManager(context); var converter = new ResourceDTOConverter(dbm); var controller = new ProcessController(context, converter, dbm); var actual = controller.GetParentChildRelationsByProcessID(1).ToList().Count; int expected = 0; Assert.Equal(expected, actual); } // seeding DB using (var context = new ProTickDatabaseContext(dbOptions)) { DbContextSeeder.SeedFull(context); } // db is Test-Ready using (var context = new ProTickDatabaseContext(dbOptions)) { var dbm = new DatabaseQueryManager(context); var converter = new ResourceDTOConverter(dbm); var controller = new ProcessController(context, converter, dbm); var subprocessDTOs = DbContextSeeder.GetSeededSubprocessDTOs( 3, DbContextSeeder.GetSeededProcessDTOs(3), DbContextSeeder.GetSeededTeamDTOs(3) ).ToList(); var expected = DbContextSeeder.GetSeededParentChildRelationDTOs( 4, new List <SubprocessDTO>() { subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2], null }, new List <SubprocessDTO>() { null, subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2] } ) .ToList(); new List <ParentChildRelationDTO>() { expected[0], expected[1] } .Should() .BeEquivalentTo( controller.GetParentChildRelationsByProcessID(1).ToList() ); new List <ParentChildRelationDTO>() { expected[1], expected[2] } .Should() .BeEquivalentTo( controller.GetParentChildRelationsByProcessID(2).ToList() ); new List <ParentChildRelationDTO>() { expected[2], expected[3] } .Should() .BeEquivalentTo( controller.GetParentChildRelationsByProcessID(3).ToList() ); } }