public void TestGetProcessesWithSubprocess() { // 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.GetProcessesWithSubprocess(true).ToList().Count; var actual2 = controller.GetProcessesWithSubprocess(false).ToList().Count; int expected = 0; Assert.Equal(expected, actual); Assert.Equal(expected, actual2); } // 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 actual = controller.GetProcessesWithSubprocess(true).ToList(); var actual2 = controller.GetProcessesWithSubprocess(false).ToList().Count; var expected = DbContextSeeder.GetSeededProcessDTOs( 3 ) .ToList(); Assert.Equal(expected.Count, actual.Count); Assert.Equal(0, actual2); expected.Should().BeEquivalentTo(actual); context.Subprocess.First(x => x.SubprocessID == 1).Process = context.Process.First(x => x.ProcessID == 2); context.SaveChanges(); var actual3 = controller.GetProcessesWithSubprocess(true).ToList(); var actual4 = controller.GetProcessesWithSubprocess(false).ToList(); var expected2 = new List <ProcessDTO>() { expected[0] }; expected.RemoveAt(0); Assert.Equal(actual3.Count, expected.Count); Assert.Equal(actual4.Count, expected2.Count); expected.Should().BeEquivalentTo(actual3); expected2.Should().BeEquivalentTo(actual4); } }