Example #1
0
        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()
                    );
            }
        }