예제 #1
0
        public void TestThatDeletingTeamMemberDeletesTeamMemberAndAssessmentItems()
        {
            var teamLogic = CreateTeamLogicForAdmin();

            var team = new Core.Models.Team()
            {
                Id   = 1,
                Name = Guid.NewGuid().ToString()
            };

            teamLogic.CreateTeam(team);

            //Create a new team member and add an assessment ite,.
            _mockContainer.TeamMembers.Add(new Data.TeamMember()
            {
                Id = 2
            });
            _mockContainer.AssessmentItems.Add(new Data.AssessmentItem()
            {
                TeamMemberId = 2
            });

            teamLogic.DeleteTeamMember(team.Id, 2);

            Assert.IsFalse(_mockContainer.TeamMembers.Any(i => i.Id == 2), "The user was not removed.");
            Assert.IsFalse(_mockContainer.AssessmentItems.Any(i => i.TeamMemberId == 2), "Assessment Items were not removed.");
        }
예제 #2
0
        public void TestThatUserWhoCreatesTeamIsSetAsTeamAdmin()
        {
            /// var user = System.Security.Principal.WindowsIdentity.GetCurrent();

            var identity = new System.Security.Principal.GenericIdentity("TestUser");
            var princpal = new System.Security.Principal.GenericPrincipal(identity, new string[] { });

            TeamController.CurrentUser = princpal;
            TeamController teamController = CreateTeamController();

            teamController.Request = _request;
            teamController.User    = princpal;

            Core.Models.Team newTeam = new Core.Models.Team()
            {
                Name = Guid.NewGuid().ToString()
            };

            var result = teamController.Post(newTeam);

            var team = _mockContainer.Teams.Where(i => i.Name == newTeam.Name).FirstOrDefault();

            Assert.IsNotNull(team, "Could not find new team");

            var teamMember = team.TeamMembers.Where(i => i.UserId == identity.Name).FirstOrDefault();

            string allUsers = String.Join(",", team.TeamMembers.Select(i => i.UserId + i.IsAdmin.ToString()).ToArray());


            Assert.IsNotNull(teamMember, "User was not assigned to team. The current user is " + identity.Name + " Current Users:" + allUsers);

            Assert.IsTrue(teamMember.IsAdmin, "User was not created as administrator.");
        }
예제 #3
0
        public static TeamModel ToTeamModel(this Core.Models.Team team)
        {
            var response = new TeamModel
            {
                Id        = team.Id.ToString(),
                Status    = (int)team.Status,
                CaptainId = Guid.Empty.ToString(),
                ShuttleId = Guid.Empty.ToString()
            };

            team.Robots.ForEach(robot => response.RobotsIds.Add(robot.ToString()));
            return(response);
        }
예제 #4
0
        public void TestThatCreatingANewTeamIsAllowed()
        {
            TeamController teamController = new TeamController(_teamRepository, _assessmentRepo, _dimensionRepo);

            teamController.Request = _request;

            Core.Models.Team newTeam = new Core.Models.Team()
            {
                Name = Guid.NewGuid().ToString()
            };

            IHttpActionResult result = teamController.Post(newTeam);

            //Assert.IsTrue(result.StatusCode == System.Net.HttpStatusCode.Created);
            Assert.IsTrue(_mockContainer.Teams.Where(i => i.Name == newTeam.Name).Count() == 1);
        }
예제 #5
0
        public void TestThatDeleteDeletesTeam()
        {
            var teamLogic = CreateTeamLogicForAdmin();

            var team = new Core.Models.Team()
            {
                Id   = 1,
                Name = Guid.NewGuid().ToString()
            };

            teamLogic.CreateTeam(team);

            teamLogic.DeleteTeam(team.Id);

            Assert.IsFalse(_mockContainer.Teams.Any(i => i.Id == team.Id), "Team was not deleted.");
        }
예제 #6
0
        public void TestThatCreatingADuplicateTeamThrowsException()
        {
            _mockContainer.Teams.Add(new Data.Team()
            {
                Name = "Test Team"
            });

            TeamController teamController = new TeamController(_teamRepository, _assessmentRepo, _dimensionRepo);

            Core.Models.Team newTeam = new Core.Models.Team()
            {
                Name = _mockContainer.Teams.First().Name
            };

            teamController.Post(newTeam);
            Assert.Fail("Must not create duplicate teams");
        }
예제 #7
0
        public static TeamModel ToTeamModel(this Core.Models.Team team)
        {
            if (team == null)
            {
                return(new TeamModel());
            }
            var response = new TeamModel
            {
                Id        = team.Id.ToString(),
                Name      = team.Name ?? string.Empty,
                Status    = (int)team.Status,
                CaptainId = team.CaptainId.ToString(),
                ShuttleId = team.ShuttleId.ToString()
            };

            team.Robots.ForEach(robot => response.RobotsIds.Add(robot.ToString()));
            return(response);
        }
예제 #8
0
        public void TestThaYouCannotDeleteTheLastAdminFromAGroup()
        {
            var teamLogic = CreateTeamLogicForAdmin();

            var team = new Core.Models.Team()
            {
                Id   = 1,
                Name = Guid.NewGuid().ToString()
            };

            teamLogic.CreateTeam(team);

            var user = teamLogic.GetTeamMembers(team.Id).First();

            _mockContainer.AssessmentItems.Add(new Data.AssessmentItem()
            {
                TeamMemberId = user.Id
            });

            teamLogic.DeleteTeamMember(team.Id, user.Id);
        }
예제 #9
0
        public static Core.Models.Team ToTeam(this TeamModel team)
        {
            if (!Guid.TryParse(team.Id, out _))
            {
                return(new Core.Models.Team());
            }

            var response = new Core.Models.Team
            {
                Id     = Guid.Parse(team.Id),
                Status = (TeamStatus)team.Status,
                Robots = new List <Guid>()
            };

            foreach (var robotId in team.RobotsIds)
            {
                response.Robots.Add(Guid.Parse(robotId));
            }

            return(response);
        }
예제 #10
0
        public static Core.Models.Team ToTeam(this TeamModel team)
        {
            //team.CaptainId = string.IsNullOrEmpty(team.CaptainId) ? Guid.Empty.ToString() : team.CaptainId;
            //team.ShuttleId = string.IsNullOrEmpty(team.ShuttleId) ? Guid.Empty.ToString() : team.ShuttleId;
            var response = new Core.Models.Team
            {
                Id        = Guid.Parse(team.Id),
                Name      = team.Name,
                Status    = (TeamStatus)team.Status,
                CaptainId = Guid.Parse(team.CaptainId),
                ShuttleId = Guid.Parse(team.ShuttleId),
                Robots    = new List <Guid>()
            };

            foreach (var robotId in team.RobotsIds)
            {
                response.Robots.Add(Guid.Parse(robotId));
            }

            return(response);
        }
예제 #11
0
        public void UpdateTeam(Core.Models.Team team)
        {
            var current = _teamRepo.FindById(team.Id);

            if (current != null)
            {
                current.Name = team.Name;

                if (!String.IsNullOrEmpty(team.AvatarName))
                {
                    current.AvatarType = _teamRepo.GetAvatar(team.AvatarName);
                }
                else
                {
                    current.AvatarType = _teamRepo.GetDefaultAvatar();
                }

                _teamRepo.SaveChanges();
            }
            else
            {
                throw new ApplicationException("Invalid team Id.");
            }
        }
예제 #12
0
        public void TestThatDeleteDeletesTeam()
        {
            var teamLogic = CreateTeamLogicForAdmin();

            var team = new Core.Models.Team()
            {
                Id = 1,
                Name = Guid.NewGuid().ToString()
            };

            teamLogic.CreateTeam(team);

            teamLogic.DeleteTeam(team.Id);

            Assert.IsFalse(_mockContainer.Teams.Any(i => i.Id == team.Id), "Team was not deleted.");
        }
예제 #13
0
        public void TestThatDeletingTeamMemberDeletesTeamMemberAndAssessmentItems()
        {
            var teamLogic = CreateTeamLogicForAdmin();

            var team = new Core.Models.Team()
            {
                Id = 1,
                Name = Guid.NewGuid().ToString()
            };

            teamLogic.CreateTeam(team);

            //Create a new team member and add an assessment ite,.
            _mockContainer.TeamMembers.Add(new Data.TeamMember() { Id = 2 });
            _mockContainer.AssessmentItems.Add(new Data.AssessmentItem() { TeamMemberId = 2 });

            teamLogic.DeleteTeamMember(team.Id, 2);

            Assert.IsFalse(_mockContainer.TeamMembers.Any(i=>i.Id == 2), "The user was not removed.");
            Assert.IsFalse(_mockContainer.AssessmentItems.Any(i => i.TeamMemberId == 2), "Assessment Items were not removed.");
        }
예제 #14
0
        public void TestThatUserWhoCreatesTeamIsSetAsTeamAdmin()
        {
            /// var user = System.Security.Principal.WindowsIdentity.GetCurrent();

               var identity = new System.Security.Principal.GenericIdentity("TestUser");
               var princpal = new System.Security.Principal.GenericPrincipal(identity, new string[] { });

               TeamController.CurrentUser = princpal;
               TeamController teamController = CreateTeamController();
               teamController.Request = _request;
               teamController.User = princpal;

            Core.Models.Team newTeam = new Core.Models.Team()
            {
                Name = Guid.NewGuid().ToString()
            };

            var result = teamController.Post(newTeam);

            var team = _mockContainer.Teams.Where(i => i.Name == newTeam.Name).FirstOrDefault();
            Assert.IsNotNull(team, "Could not find new team");

            var teamMember = team.TeamMembers.Where(i => i.UserId == identity.Name).FirstOrDefault();

            string allUsers = String.Join(",",team.TeamMembers.Select(i => i.UserId + i.IsAdmin.ToString()).ToArray());

            Assert.IsNotNull(teamMember, "User was not assigned to team. The current user is " + identity.Name + " Current Users:" + allUsers);

            Assert.IsTrue(teamMember.IsAdmin, "User was not created as administrator.");
        }
예제 #15
0
        public void TestThaYouCannotDeleteTheLastAdminFromAGroup()
        {
            var teamLogic = CreateTeamLogicForAdmin();

            var team = new Core.Models.Team()
            {
                Id = 1,
                Name = Guid.NewGuid().ToString()
            };

            teamLogic.CreateTeam(team);

            var user = teamLogic.GetTeamMembers(team.Id).First();

            _mockContainer.AssessmentItems.Add(new Data.AssessmentItem() { TeamMemberId = user.Id });

            teamLogic.DeleteTeamMember(team.Id, user.Id);
        }
예제 #16
0
        public void TestThatCreatingADuplicateTeamThrowsException()
        {
            _mockContainer.Teams.Add(new Data.Team() { Name = "Test Team"});

            TeamController teamController = new TeamController(_teamRepository, _assessmentRepo, _dimensionRepo);

            Core.Models.Team newTeam = new Core.Models.Team()
            {
                Name = _mockContainer.Teams.First().Name
            };

                teamController.Post(newTeam);
                Assert.Fail("Must not create duplicate teams");
        }
예제 #17
0
        public void TestThatCreatingANewTeamIsAllowed()
        {
            TeamController teamController = new TeamController(_teamRepository, _assessmentRepo, _dimensionRepo);
            teamController.Request = _request;

            Core.Models.Team newTeam = new Core.Models.Team()
            {
                Name = Guid.NewGuid().ToString()
            };

            IHttpActionResult result = teamController.Post(newTeam);

            //Assert.IsTrue(result.StatusCode == System.Net.HttpStatusCode.Created);
            Assert.IsTrue(_mockContainer.Teams.Where(i => i.Name == newTeam.Name).Count() == 1);
        }