public void TestPostTeam()
        {
            // 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 TeamController(context, converter, dbm);

                var dtos          = DbContextSeeder.GetSeededTeamDTOs(4).ToList();
                var expectedTeams = DbContextSeeder.GetSeededTeams(4).ToList();
                //dtos[3].Abbreviation = "test";
                //dtos[3].Description = "test";

                var actual = controller.PostTeam(dtos[3]);

                actual.Should().BeEquivalentTo(dtos[3]);

                var actualCount = context.Team.ToList().Count;
                Assert.Equal(4, actualCount);

                context.Team.FirstOrDefault(x => x.TeamID == 4).Should().BeEquivalentTo(expectedTeams[3]);
            }
        }
        public void TestDeleteTeam()
        {
            // 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 TeamController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededTeamDTOs(
                    3
                    )
                           .ToList();

                controller.DeleteTeam(dtos[2].TeamID);

                var actualCount = context.Team.ToList().Count;
                Assert.Equal(2, actualCount);
                Assert.True(context.Team.FirstOrDefault(x => x.TeamID == 3) == null);
                Assert.True(context.Team.FirstOrDefault(x => x.TeamID != 3) != null);

                controller.DeleteTeam(dtos[1].TeamID);

                actualCount = context.Team.ToList().Count;
                Assert.Equal(1, actualCount);
                Assert.True(context.Team.FirstOrDefault(x => x.TeamID == 2) == null);
            }
        }
Exemple #3
0
        public void TestGetParentChildRelations()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);

                var controller = new ParentChildRelationController(context, converter, dbm);

                var actual = controller.GetParentChildRelations().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 ParentChildRelationController(context, converter, dbm);

                var actual = controller.GetParentChildRelations().ToList();

                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();


                Assert.Equal(expected.Count, actual.Count);

                expected.Should().BeEquivalentTo(actual);
            }
        }
        public void TestPostEmployeeTeam()
        {
            // 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 EmployeeTeamController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededEmployeeTeamDTOs(
                    4,
                    DbContextSeeder.GetSeededEmployeeDTOs(
                        4,
                        DbContextSeeder.GetSeededAddressDTOs(4),
                        DbContextSeeder.GetSeededRoleDTOs(4)
                        ),
                    DbContextSeeder.GetSeededTeamDTOs(4)
                    )
                           .ToList();
                var expected = DbContextSeeder.GetSeededEmployeeTeams(
                    4,
                    DbContextSeeder.GetSeededEmployees(
                        4,
                        DbContextSeeder.GetSeededAddresses(4),
                        DbContextSeeder.GetSeededRoles(4)
                        ),
                    DbContextSeeder.GetSeededTeams(4)
                    )
                               .ToList();

                var expectedID = 1;
                dtos[3].TeamID       = expectedID;
                dtos[3].EmployeeID   = expectedID;
                expected[3].Team     = DbContextSeeder.GetSeededTeams(1)[0];
                expected[3].Employee = DbContextSeeder.GetSeededEmployees(
                    1,
                    DbContextSeeder.GetSeededAddresses(1),
                    DbContextSeeder.GetSeededRoles(1)
                    )[0];

                var actual = controller.PostEmployeeTeam(dtos[3]);

                actual.Should().BeEquivalentTo(dtos[3]);

                var actualCount = context.EmployeeTeam.ToList().Count;
                Assert.Equal(4, actualCount);

                context.EmployeeTeam.FirstOrDefault(x => x.EmployeeTeamID == 4).Should().BeEquivalentTo(expected[3]);
            }
        }
        public void TestPutTicket()
        {
            // 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 TicketController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededTicketDTOs(
                    3,
                    DbContextSeeder.GetSeededStateDTOs(3),
                    DbContextSeeder.GetSeededSubprocessDTOs(
                        3,
                        DbContextSeeder.GetSeededProcessDTOs(3),
                        DbContextSeeder.GetSeededTeamDTOs(3))
                    )
                           .ToList();

                var expectedText = "test";
                var expectedID   = 1;

                dtos[2].StateID      = expectedID;
                dtos[2].SubprocessID = expectedID;
                dtos[2].Description  = expectedText;
                dtos[2].Note         = expectedText;

                var actual = controller.PutTicket(3, dtos[2]);

                actual.Should().BeEquivalentTo(dtos[2]);

                var actualCount = context.Ticket.ToList().Count;
                Assert.Equal(3, actualCount);

                var ticket = context.Ticket
                             .Include(x => x.State)
                             .Include(x => x.Subprocess)
                             .FirstOrDefault(x => x.TicketID == 3);

                Assert.True(ticket != null);

                if (ticket != null)
                {
                    Assert.Equal(ticket.Note, expectedText);
                    Assert.Equal(ticket.Description, expectedText);
                    Assert.Equal(ticket.State.StateID, expectedID);
                    Assert.Equal(ticket.Subprocess.SubprocessID, expectedID);
                }
            }
        }
Exemple #6
0
        public void TestDeleteParentChildRelation()
        {
            // 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 ParentChildRelationController(context, converter, dbm);

                var subprocessDTOs = DbContextSeeder.GetSeededSubprocessDTOs(
                    3,
                    DbContextSeeder.GetSeededProcessDTOs(3),
                    DbContextSeeder.GetSeededTeamDTOs(3)
                    ).ToList();

                var dtos = DbContextSeeder.GetSeededParentChildRelationDTOs(
                    4,
                    new List <SubprocessDTO>()
                {
                    subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2], null
                },
                    new List <SubprocessDTO>()
                {
                    null, subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2]
                }
                    )
                           .ToList();

                controller.DeleteParentChildRelation(dtos[3].ParentChildRelationID);

                var actualCount = context.ParentChildRelation.ToList().Count;
                Assert.Equal(3, actualCount);
                Assert.True(context.ParentChildRelation.FirstOrDefault(x => x.ParentChildRelationID == 4) == null);
                Assert.True(context.ParentChildRelation.FirstOrDefault(x => x.ParentChildRelationID != 4) != null);

                controller.DeleteParentChildRelation(dtos[2].ParentChildRelationID);

                actualCount = context.ParentChildRelation.ToList().Count;
                Assert.Equal(2, actualCount);
                Assert.True(context.ParentChildRelation.FirstOrDefault(x => x.ParentChildRelationID == 3) == null);
                Assert.True(context.ParentChildRelation.FirstOrDefault(x => x.ParentChildRelationID != 3) != null);

                controller.DeleteParentChildRelation(dtos[1].ParentChildRelationID);

                actualCount = context.ParentChildRelation.ToList().Count;
                Assert.Equal(1, actualCount);
                Assert.True(context.ParentChildRelation.FirstOrDefault(x => x.ParentChildRelationID == 2) == null);
            }
        }
Exemple #7
0
        public void TestGetTicketsByStateID()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);

                var controller = new StateController(context, converter, dbm);

                var actual = controller.GetTicketsByStateID(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 StateController(context, converter, dbm);

                var expected = DbContextSeeder.GetSeededTicketDTOs(
                    3,
                    DbContextSeeder.GetSeededStateDTOs(3),
                    DbContextSeeder.GetSeededSubprocessDTOs(
                        3,
                        DbContextSeeder.GetSeededProcessDTOs(3),
                        DbContextSeeder.GetSeededTeamDTOs(3)
                        )
                    )
                               .ToList();

                var act1 = controller.GetTicketsByStateID(1).ToList();
                var act2 = controller.GetTicketsByStateID(2).ToList();
                var act3 = controller.GetTicketsByStateID(3).ToList();

                int expectedCount = 1;
                Assert.Equal(expectedCount, act1.Count);
                Assert.Equal(expectedCount, act2.Count);
                Assert.Equal(expectedCount, act3.Count);

                expected[0].Should().BeEquivalentTo(act1[0]);
                expected[1].Should().BeEquivalentTo(act2[0]);
                expected[2].Should().BeEquivalentTo(act3[0]);
            }
        }
        public void TestPutEmployeeTeam()
        {
            // 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 EmployeeTeamController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededEmployeeTeamDTOs(
                    3,
                    DbContextSeeder.GetSeededEmployeeDTOs(
                        3,
                        DbContextSeeder.GetSeededAddressDTOs(3),
                        DbContextSeeder.GetSeededRoleDTOs(3)
                        ),
                    DbContextSeeder.GetSeededTeamDTOs(3)
                    )
                           .ToList();

                var expectedText = "test";
                var expectedID   = 1;

                dtos[2].TeamID     = expectedID;
                dtos[2].EmployeeID = expectedID;

                var actual = controller.PutEmployeeTeam(3, dtos[2]);

                actual.Should().BeEquivalentTo(dtos[2]);

                var actualCount = context.EmployeeTeam.ToList().Count;
                Assert.Equal(3, actualCount);

                var actualInDb = context.EmployeeTeam
                                 .Include(x => x.Team)
                                 .Include(x => x.Employee)
                                 .FirstOrDefault(x => x.EmployeeTeamID == 3);

                Assert.True(actualInDb != null);

                if (actualInDb != null)
                {
                    Assert.Equal(actualInDb.Team.TeamID, expectedID);
                    Assert.Equal(actualInDb.Employee.EmployeeID, expectedID);
                }
            }
        }
Exemple #9
0
        public void TestGetParentChildRelation()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);

                var controller = new ParentChildRelationController(context, converter, dbm);

                Assert.Throws <DatabaseEntryNotFoundException>(() => controller.GetParentChildRelation(0));
            }

            // 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 ParentChildRelationController(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();

                expected[0].Should().BeEquivalentTo(controller.GetParentChildRelation(1));
                expected[1].Should().BeEquivalentTo(controller.GetParentChildRelation(2));
                expected[2].Should().BeEquivalentTo(controller.GetParentChildRelation(3));
                expected[3].Should().BeEquivalentTo(controller.GetParentChildRelation(4));
            }
        }
Exemple #10
0
        public void TestPutAddress()
        {
            // 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 AddressController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededAddressDTOs(
                    3
                    )
                           .ToList();

                var expectedText = "test";
                var expectedID   = 1;

                dtos[2].City         = expectedText;
                dtos[2].Country      = expectedText;
                dtos[2].PostalCode   = expectedText;
                dtos[2].Street       = expectedText;
                dtos[2].StreetNumber = expectedText;

                var actual = controller.PutAddress(3, dtos[2]);

                actual.Should().BeEquivalentTo(dtos[2]);

                var actualCount = context.Address.ToList().Count;
                Assert.Equal(3, actualCount);

                var actualInDb = context.Address
                                 .FirstOrDefault(x => x.AddressID == 3);

                Assert.True(actualInDb != null);

                if (actualInDb != null)
                {
                    Assert.Equal(actualInDb.City, expectedText);
                    Assert.Equal(actualInDb.Country, expectedText);
                    Assert.Equal(actualInDb.PostalCode, expectedText);
                    Assert.Equal(actualInDb.Street, expectedText);
                    Assert.Equal(actualInDb.StreetNumber, expectedText);
                }
            }
        }
        public void TestGetEmployeeTeams()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);

                var controller = new EmployeeTeamController(context, converter, dbm);

                var actual = controller.GetEmployeeTeams().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 EmployeeTeamController(context, converter, dbm);

                var actual = controller.GetEmployeeTeams().ToList();

                var expected = DbContextSeeder.GetSeededEmployeeTeamDTOs(
                    3,
                    DbContextSeeder.GetSeededEmployeeDTOs(
                        3,
                        DbContextSeeder.GetSeededAddressDTOs(3),
                        DbContextSeeder.GetSeededRoleDTOs(3)
                        ),
                    DbContextSeeder.GetSeededTeamDTOs(3)
                    )
                               .ToList();

                Assert.Equal(expected.Count, actual.Count);

                expected.Should().BeEquivalentTo(actual);
            }
        }
Exemple #12
0
        public void TestPostEmployee()
        {
            // 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 hasher    = new Hasher();

                var controller = new EmployeeController(context, converter, dbm, hasher);

                var dtos = DbContextSeeder.GetSeededEmployeeDTOs(
                    4,
                    DbContextSeeder.GetSeededAddressDTOs(4),
                    DbContextSeeder.GetSeededRoleDTOs(4)
                    )
                           .ToList();
                var expected = DbContextSeeder.GetSeededEmployees(
                    4,
                    DbContextSeeder.GetSeededAddresses(4),
                    DbContextSeeder.GetSeededRoles(4)
                    )
                               .ToList();

                dtos[3].AddressID = 1;
                dtos[3].RoleID    = 1;

                expected[3].Address  = DbContextSeeder.GetSeededAddresses(1)[0];
                expected[3].Role     = DbContextSeeder.GetSeededRoles(1)[0];
                expected[3].Password = "******";


                var actual = controller.PostEmployee(dtos[3]);

                actual.Should().BeEquivalentTo(dtos[3]);

                var actualCount = context.Employee.ToList().Count;
                Assert.Equal(4, actualCount);

                context.Employee.FirstOrDefault(x => x.EmployeeID == 4).Should().BeEquivalentTo(expected[3]);
            }
        }
Exemple #13
0
        public void TestGetChildrenOfSubprocess()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);

                var controller = new SubprocessController(context, converter, dbm);

                var actual = controller.GetChildrenOfSubprocess(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 SubprocessController(context, converter, dbm);

                var expected = DbContextSeeder.GetSeededSubprocessDTOs(
                    3,
                    DbContextSeeder.GetSeededProcessDTOs(3),
                    DbContextSeeder.GetSeededTeamDTOs(3)
                    )
                               .ToList();

                expected[1].Should().BeEquivalentTo(controller.GetChildrenOfSubprocess(1).ToList()[0]);
                expected[2].Should().BeEquivalentTo(controller.GetChildrenOfSubprocess(2).ToList()[0]);
                (new List <SubprocessDTO>()
                {
                    null
                })
                .Should().BeEquivalentTo(controller.GetChildrenOfSubprocess(3).ToList());
            }
        }
Exemple #14
0
        public void TestGetTeamsByEmployeeID()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);
                var hasher    = new Hasher();

                var controller = new EmployeeController(context, converter, dbm, hasher);

                var actual = controller.GetTeamsByEmployeeID(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 hasher    = new Hasher();

                var controller = new EmployeeController(context, converter, dbm, hasher);

                var expected = DbContextSeeder.GetSeededTeamDTOs(
                    3
                    )
                               .ToList();

                expected[0].Should().BeEquivalentTo(
                    controller.GetTeamsByEmployeeID(1).ToList()[0]);
                expected[1].Should().BeEquivalentTo(
                    controller.GetTeamsByEmployeeID(2).ToList()[0]);
                expected[2].Should().BeEquivalentTo(
                    controller.GetTeamsByEmployeeID(3).ToList()[0]);
            }
        }
        public void TestPutTeam()
        {
            // 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 TeamController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededTeamDTOs(
                    3
                    )
                           .ToList();

                var expectedText = "test";
                var expectedID   = 1;

                dtos[2].Abbreviation = expectedText;
                dtos[2].Description  = expectedText;

                var actual = controller.PutTeam(3, dtos[2]);

                actual.Should().BeEquivalentTo(dtos[2]);

                var actualCount = context.Team.ToList().Count;
                Assert.Equal(3, actualCount);

                var team = context.Team
                           .FirstOrDefault(x => x.TeamID == 3);

                Assert.True(team != null);

                if (team != null)
                {
                    Assert.Equal(team.Description, expectedText);
                    Assert.Equal(team.Abbreviation, expectedText);
                }
            }
        }
        public void TestGetEmployeeTeam()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);

                var controller = new EmployeeTeamController(context, converter, dbm);

                Assert.Throws <DatabaseEntryNotFoundException>(() => controller.GetEmployeeTeam(0));
            }

            // 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 EmployeeTeamController(context, converter, dbm);

                var expected = DbContextSeeder.GetSeededEmployeeTeamDTOs(
                    3,
                    DbContextSeeder.GetSeededEmployeeDTOs(
                        3,
                        DbContextSeeder.GetSeededAddressDTOs(3),
                        DbContextSeeder.GetSeededRoleDTOs(3)
                        ),
                    DbContextSeeder.GetSeededTeamDTOs(3)
                    )
                               .ToList();

                expected[0].Should().BeEquivalentTo(controller.GetEmployeeTeam(1));
                expected[1].Should().BeEquivalentTo(controller.GetEmployeeTeam(2));
                expected[2].Should().BeEquivalentTo(controller.GetEmployeeTeam(3));
            }
        }
Exemple #17
0
        public void TestPostSubprocess()
        {
            // 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 SubprocessController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededSubprocessDTOs(
                    4,
                    DbContextSeeder.GetSeededProcessDTOs(4),
                    DbContextSeeder.GetSeededTeamDTOs(4)
                    )
                           .ToList();
                var expected = DbContextSeeder.GetSeededSubprocesses(
                    4,
                    DbContextSeeder.GetSeededProcesses(4),
                    DbContextSeeder.GetSeededTeams(4)
                    )
                               .ToList();
                dtos[3].ProcessID   = 1;
                dtos[3].TeamID      = 1;
                expected[3].Process = DbContextSeeder.GetSeededProcesses(1)[0];
                expected[3].Team    = DbContextSeeder.GetSeededTeams(1)[0];

                var actual = controller.PostSubprocess(dtos[3]);

                actual.Should().BeEquivalentTo(dtos[3]);

                var actualCount = context.Subprocess.ToList().Count;
                Assert.Equal(4, actualCount);

                context.Subprocess.FirstOrDefault(x => x.SubprocessID == 4).Should().BeEquivalentTo(expected[3]);
            }
        }
Exemple #18
0
        public void TestDeleteEmployee()
        {
            // 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 hasher    = new Hasher();

                var controller = new EmployeeController(context, converter, dbm, hasher);

                var dtos = DbContextSeeder.GetSeededEmployeeDTOs(
                    3,
                    DbContextSeeder.GetSeededAddressDTOs(3),
                    DbContextSeeder.GetSeededRoleDTOs(3)
                    )
                           .ToList();

                controller.DeleteEmployee(dtos[2].EmployeeID);

                var actualCount = context.Employee.ToList().Count;
                Assert.Equal(2, actualCount);
                Assert.True(context.Employee.FirstOrDefault(x => x.EmployeeID == 3) == null);
                Assert.True(context.Employee.FirstOrDefault(x => x.EmployeeID != 3) != null);

                controller.DeleteEmployee(dtos[1].EmployeeID);

                actualCount = context.Employee.ToList().Count;
                Assert.Equal(1, actualCount);
                Assert.True(context.Employee.FirstOrDefault(x => x.EmployeeID == 2) == null);
            }
        }
        public void TestPostTicket()
        {
            // 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 TicketController(context, converter, dbm);

                var dtos = DbContextSeeder.GetSeededTicketDTOs(
                    4,
                    DbContextSeeder.GetSeededStateDTOs(4),
                    DbContextSeeder.GetSeededSubprocessDTOs(
                        4,
                        DbContextSeeder.GetSeededProcessDTOs(4),
                        DbContextSeeder.GetSeededTeamDTOs(4))
                    )
                           .ToList();
                dtos[3].StateID      = 1;
                dtos[3].SubprocessID = 1;

                var actual = controller.PostTicket(dtos[3]);

                actual.Should().BeEquivalentTo(dtos[3]);

                var actualCount = context.Ticket.ToList().Count;
                Assert.Equal(4, actualCount);

                Assert.True(context.Ticket.FirstOrDefault(x => x.TicketID == 4) != null);
            }
        }
        public void TestGetTeamsByUsername()
        {
            // db is empty
            using (var context = new ProTickDatabaseContext(dbOptions))
            {
                var dbm       = new DatabaseQueryManager(context);
                var converter = new ResourceDTOConverter(dbm);


                var expectedUsername = "******";
                var expectedRole     = "Admin";

                var controller = new TeamController(context, converter, dbm);
                var user       = new ClaimsPrincipal(new ClaimsIdentity(
                                                         new List <Claim>()
                {
                    new Claim(ClaimTypes.NameIdentifier, expectedUsername),
                    new Claim(ClaimTypes.Role, expectedRole)
                }));
                controller.ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = user
                    }
                };


                Assert.Throws <DatabaseEntryNotFoundException>(
                    () => controller.GetTeamsByUsername(expectedUsername));
            }

            // 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 expectedUsername = "******";
                var expectedRole     = "Admin";

                var controller = new TeamController(context, converter, dbm);
                var user       = new ClaimsPrincipal(new ClaimsIdentity(
                                                         new List <Claim>()
                {
                    new Claim(ClaimTypes.NameIdentifier, expectedUsername),
                    new Claim(ClaimTypes.Role, expectedRole)
                }));
                controller.ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = user
                    }
                };

                // admin
                var actualAdmin = controller.GetTeamsByUsername(expectedUsername)
                                  .ToList();

                var expectedAdmin = DbContextSeeder.GetSeededTeamDTOs(
                    3
                    )
                                    .Where(x => x.TeamID == 2)
                                    .ToList();

                Assert.Equal(expectedAdmin.Count, actualAdmin.Count);

                expectedAdmin.Should().BeEquivalentTo(actualAdmin);

                // employee
                expectedUsername = "******";
                expectedRole     = "Employee";
                var user2 = new ClaimsPrincipal(new ClaimsIdentity(
                                                    new List <Claim>()
                {
                    new Claim(ClaimTypes.NameIdentifier, expectedUsername),
                    new Claim(ClaimTypes.Role, expectedRole)
                }));
                controller.ControllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        User = user2
                    }
                };

                var actualEmployee = controller.GetTeamsByUsername(expectedUsername)
                                     .ToList();
                var expectedEmployee = DbContextSeeder.GetSeededTeamDTOs(
                    1
                    )
                                       .ToList();

                Assert.Equal(actualEmployee.Count, expectedEmployee.Count);

                actualEmployee.Should().BeEquivalentTo(expectedEmployee);
            }
        }
Exemple #21
0
        public void TestPutEmployee()
        {
            // 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 hasher    = new Hasher();

                var controller = new EmployeeController(context, converter, dbm, hasher);


                var dtos = DbContextSeeder.GetSeededEmployeeDTOs(
                    3,
                    DbContextSeeder.GetSeededAddressDTOs(3),
                    DbContextSeeder.GetSeededRoleDTOs(3)
                    )
                           .ToList();

                var expectedText = "test";
                var expectedID   = 1;
                var expectedDate = DateTime.Parse("01/01/2020");

                dtos[2].AddressID   = expectedID;
                dtos[2].DateOfBirth = expectedDate.ToShortDateString();
                dtos[2].Email       = expectedText;
                dtos[2].FirstName   = expectedText;
                dtos[2].HireDate    = expectedDate.ToShortDateString();
                dtos[2].LastName    = expectedText;
                dtos[2].PhoneNumber = expectedText;
                dtos[2].RoleID      = expectedID;
                dtos[2].Username    = expectedText;

                var actual = controller.PutEmployee(3, dtos[2]);

                actual.Should().BeEquivalentTo(dtos[2]);

                var actualCount = context.Employee.ToList().Count;
                Assert.Equal(3, actualCount);

                var actualInDb = context.Employee
                                 .Include(x => x.Address)
                                 .Include(x => x.Role)
                                 .FirstOrDefault(x => x.EmployeeID == 3);

                Assert.True(actualInDb != null);

                if (actualInDb != null)
                {
                    Assert.Equal(actualInDb.Address.AddressID, expectedID);
                    Assert.Equal(actualInDb.DateOfBirth, expectedDate);
                    Assert.Equal(actualInDb.Email, expectedText);
                    Assert.Equal(actualInDb.FirstName, expectedText);
                    Assert.Equal(actualInDb.HireDate, expectedDate);
                    Assert.Equal(actualInDb.LastName, expectedText);
                    Assert.Equal(actualInDb.PhoneNumber, expectedText);
                    Assert.Equal(actualInDb.Role.RoleID, expectedID);
                    Assert.Equal(actualInDb.Username, expectedText);
                }
            }
        }
Exemple #22
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);
            }
        }
Exemple #23
0
        public void TestPostParentChildRelation()
        {
            // 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 ParentChildRelationController(context, converter, dbm);

                var subprocesses = DbContextSeeder.GetSeededSubprocesses(
                    4,
                    DbContextSeeder.GetSeededProcesses(4),
                    DbContextSeeder.GetSeededTeams(4)
                    ).ToList();
                var expected = DbContextSeeder.GetSeededParentChildRelations(
                    5,
                    new List <Subprocess>()
                {
                    subprocesses[0], subprocesses[1], subprocesses[2], null, subprocesses[1]
                },
                    new List <Subprocess>()
                {
                    null, subprocesses[0], subprocesses[1], subprocesses[2], subprocesses[0]
                }
                    )
                               .ToList();

                var subprocessDTOs = DbContextSeeder.GetSeededSubprocessDTOs(
                    4,
                    DbContextSeeder.GetSeededProcessDTOs(4),
                    DbContextSeeder.GetSeededTeamDTOs(4)
                    ).ToList();
                var dtos = DbContextSeeder.GetSeededParentChildRelationDTOs(
                    5,
                    new List <SubprocessDTO>()
                {
                    subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2], null, subprocessDTOs[1]
                },
                    new List <SubprocessDTO>()
                {
                    null, subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2], subprocessDTOs[0]
                }
                    )
                           .ToList();
                //dtos[3]. = "test";
                //dtos[3].Description = "test";

                var actual = controller.PostParentChildRelation(dtos[4]);

                actual.Should().BeEquivalentTo(dtos[4]);

                var actualCount = context.ParentChildRelation.ToList().Count;
                Assert.Equal(5, actualCount);

                context.ParentChildRelation.FirstOrDefault(x => x.ParentChildRelationID == 5).Should().BeEquivalentTo(expected[4]);
            }
        }
Exemple #24
0
        public void TestPutParentChildRelation()
        {
            // 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 ParentChildRelationController(context, converter, dbm);

                var subprocessDTOs = DbContextSeeder.GetSeededSubprocessDTOs(
                    3,
                    DbContextSeeder.GetSeededProcessDTOs(3),
                    DbContextSeeder.GetSeededTeamDTOs(3)
                    ).ToList();

                var dtos = DbContextSeeder.GetSeededParentChildRelationDTOs(
                    4,
                    new List <SubprocessDTO>()
                {
                    subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2], null
                },
                    new List <SubprocessDTO>()
                {
                    null, subprocessDTOs[0], subprocessDTOs[1], subprocessDTOs[2]
                }
                    )
                           .ToList();

                var expectedParent = 1;
                var expectedChild  = 2;

                dtos[2].ParentID = expectedParent;
                dtos[2].ChildID  = expectedChild;

                var actual = controller.PutParentChildRelation(3, dtos[2]);

                actual.Should().BeEquivalentTo(dtos[2]);

                var actualCount = context.ParentChildRelation.ToList().Count;
                Assert.Equal(4, actualCount);

                var actualInDb = context.ParentChildRelation
                                 .Include(x => x.Parent)
                                 .Include(x => x.Child)
                                 .FirstOrDefault(x => x.ParentChildRelationID == 3);

                Assert.True(actualInDb != null);

                if (actualInDb != null)
                {
                    Assert.Equal(actualInDb.Parent.SubprocessID, expectedParent);
                    Assert.Equal(actualInDb.Child.SubprocessID, expectedChild);
                }
            }
        }