Esempio n. 1
0
        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);
            }
        }