public void AddPlayer_Identificador_Utilizado_Ja_Existe()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddPlayer(1, 1, "Jogador", DateTime.Today, 0, 0);

            Assert.Throws <UniqueIdentifierException>(() =>
                                                      manager.AddPlayer(1, 1, "Jogador", DateTime.Today, 0, 0));
        }
        public void GetTeamCaptain_Capitao_Nao_Informado()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddPlayer(1, 1, "Jogador 1", DateTime.Today, 0, 0);

            Assert.Throws <CaptainNotFoundException>(() =>
                                                     manager.GetTeamCaptain(1));
        }
        public void GetBestTeamPlayer_Time_Nao_Encontrado()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddPlayer(1, 1, "Jogador 1", DateTime.Today, 0, 0);

            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetBestTeamPlayer(2));
        }
        public void Should_Get_Best_Players()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddTeam(2, "Time 2", DateTime.Now, "cor 1", "cor 2");

            var playersIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };
            var skill = new List <int>()
            {
                30, 50, 50, 30, 10
            };

            for (int i = 0; i < playersIds.Count(); i++)
            {
                manager.AddPlayer(playersIds[i], 1, $"Jogador {i}", DateTime.Now, skill[i], 0);
            }

            playersIds = new List <long>()
            {
                16, 3, 34, 5, 14
            };
            skill = new List <int>()
            {
                35, 52, 50, 10, 10
            };
            for (int i = 0; i < playersIds.Count(); i++)
            {
                manager.AddPlayer(playersIds[i], 2, $"Boleiro {i}", DateTime.Now, skill[i], 0);
            }

            var bestPlayers = manager.GetTopPlayers(5);

            Assert.Equal(3, bestPlayers[0]);
            Assert.Equal(2, bestPlayers[1]);
            Assert.Equal(33, bestPlayers[2]);
            Assert.Equal(34, bestPlayers[3]);
            Assert.Equal(16, bestPlayers[4]);
        }
        public void GetTeamCaptain_Time_Nao_Existe()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddPlayer(1, 1, "Jogador 1", DateTime.Today, 0, 0);
            manager.SetCaptain(1);

            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetTeamCaptain(2));
        }
示例#6
0
        public void Should_Be_Valid_Team_When_Get_Captain()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddPlayer(1, 1, "Jogador 1", DateTime.Today, 0, 0);
            manager.SetCaptain(1);
            Assert.Equal(1, manager.GetTeamCaptain(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetTeamCaptain(2));
        }
示例#7
0
        public void Should_Be_Unique_Player_As_Team_Captain()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddTeam(2, "Time 2", DateTime.Now, "cor 3", "cor 4");
            manager.AddPlayer(1, 1, "Jogador 1", DateTime.Today, 0, 0);
            manager.AddPlayer(2, 1, "Jogador 2", DateTime.Today, 0, 0);
            manager.AddPlayer(3, 2, "Jogador 3", DateTime.Today, 0, 0);
            manager.AddPlayer(4, 2, "Jogador 4", DateTime.Today, 0, 0);

            manager.SetCaptain(1);
            Assert.Equal(1, manager.GetTeamCaptain(1));

            manager.SetCaptain(2);
            Assert.Equal(2, manager.GetTeamCaptain(1));

            manager.SetCaptain(3);
            Assert.Equal(2, manager.GetTeamCaptain(1));
            Assert.Equal(3, manager.GetTeamCaptain(2));
        }
示例#8
0
        public void Should_Choose_Higher_Salary_Player(string salaries, long highSalaryPlayerId)
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var salariesList = salaries.Split(';').Select(x => decimal.Parse(x)).ToList();

            for (int i = 0; i < salariesList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today, 0, salariesList[i]);
            }

            Assert.Equal(highSalaryPlayerId, manager.GetHigherSalaryPlayer(1));
        }
示例#9
0
        public void Should_Choose_Best_Team_Player(string skills, int bestPlayerId)
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var skillsLevelList = skills.Split(',').Select(x => int.Parse(x)).ToList();

            for (int i = 0; i < skillsLevelList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today, skillsLevelList[i], 0);
            }

            Assert.Equal(bestPlayerId, manager.GetBestTeamPlayer(1));
        }
        public void GetHigherSalaryPlayerTest(string salary, int topSalaryPlayerId)
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var salarylList = salary.Split(',').Select(x => int.Parse(x)).ToList();

            for (int i = 0; i < salarylList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today, 10, salarylList[i]);
            }

            Assert.Equal(topSalaryPlayerId, manager.GetHigherSalaryPlayer(1));
        }
示例#11
0
        public void Should_Choose_Older_Team_Player(string ages, long olderPlayerId)
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var agesList = ages.Split(',').Select(x => int.Parse(x)).ToList();

            for (int i = 0; i < agesList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", new DateTime(DateTime.Today.Year - agesList[i], 1, 1), 0, 0);
            }

            Assert.Equal(olderPlayerId, manager.GetOlderTeamPlayer(1));
        }
示例#12
0
        public void Should_Choose_Older_Team_Player(string skills, int olderPlayerId)
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var bdList = skills.Split(',').Select(x => DateTime.Parse(x)).ToList();

            for (int i = 0; i < bdList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", bdList[i], 1, 0);
            }

            Assert.Equal(olderPlayerId, manager.GetOlderTeamPlayer(1));
        }
示例#13
0
        public void Should_Return_Older_Team_Player()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            for (int i = 1; i <= 3; i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today.AddYears(i), 0, 0);
            }

            Assert.Equal(1, manager.GetOlderTeamPlayer(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetOlderTeamPlayer(2));
        }
        public void GetTeams_Ordem_IDs()
        {
            var manager  = new SoccerTeamsManager();
            var teamsIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };

            for (int i = 0; i < teamsIds.Count(); i++)
            {
                manager.AddTeam(teamsIds[i], "Time 1", DateTime.Now, "cor 1", "cor 2");
            }

            teamsIds.Sort();
            Assert.Equal(teamsIds, manager.GetTeams());
        }
示例#15
0
        public void Should_Ensure_Sort_Order_When_Get_Teams()
        {
            var manager = new SoccerTeamsManager();

            var teamIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };

            for (int i = 0; i < teamIds.Count(); i++)
            {
                manager.AddTeam(teamIds[i], $"Time {i}", DateTime.Today, "cor 1", "cor 2");
            }

            teamIds.Sort();
            Assert.Equal(teamIds, manager.GetTeams());
        }
示例#16
0
        public void Should_Ensure_Sort_Order_When_Get_Team_Players()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var playersIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };

            for (int i = 0; i < playersIds.Count(); i++)
            {
                manager.AddPlayer(playersIds[i], 1, $"Jogador {i}", DateTime.Today, 0, 0);
            }

            playersIds.Sort();
            Assert.Equal(playersIds, manager.GetTeamPlayers(1));
        }
示例#17
0
        public void Should_Return_Ordered_Teams()
        {
            var manager = new SoccerTeamsManager();

            Assert.Empty(manager.GetTeams());

            var teamsIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };

            for (int i = 0; i < teamsIds.Count(); i++)
            {
                manager.AddTeam(teamsIds[i], $"Team {i}", DateTime.Today, "", "");
            }

            teamsIds.Sort();
            Assert.Equal(teamsIds, manager.GetTeams());
        }
示例#18
0
        public void Should_Return_Higher_Salary_Player()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var salaryList = new List <decimal>()
            {
                1000, 1500.98m, 2300.87m, 2300.87m
            };

            for (int i = 0; i < salaryList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today, 0, salaryList[i]);
            }

            Assert.Equal(2, manager.GetHigherSalaryPlayer(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetHigherSalaryPlayer(2));
        }
示例#19
0
        public void Should_Choose_Best_Team_Player()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var skillsLevelList = new List <int>()
            {
                10, 20, 300, 40, 50
            };

            for (int i = 0; i < skillsLevelList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today, skillsLevelList[i], 0);
            }

            Assert.Equal(2, manager.GetBestTeamPlayer(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetBestTeamPlayer(2));
        }
示例#20
0
        public void Should_Choose_Top_Team_Player(string treamskillsstr, int top, string topstr)
        {
            long id         = 0;
            var  manager    = new SoccerTeamsManager();
            var  teamSkills = treamskillsstr.Split("|");

            for (int i = 0; i < teamSkills.Count(); i++)
            {
                manager.AddTeam(i, $"Time {i}", DateTime.Now, "cor 1", "cor 2");

                var skillsLevelList = teamSkills[i].Split(',').Select(x => int.Parse(x)).ToList();
                for (int j = 0; j < skillsLevelList.Count(); j++)
                {
                    manager.AddPlayer(id++, i, $"Jogador {id}", DateTime.Today, skillsLevelList[j], 0);
                }
            }
            var ltp          = manager.GetTopPlayers(top);
            var topstrobtido = string.Join(",", ltp);

            Assert.Equal(topstr, topstrobtido);
        }
        public void Should_Return_Oldest_Player()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var playersIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };
            var playerAges = new List <long>()
            {
                10, 10, 15, 18, 13
            };

            for (int i = 0; i < playersIds.Count(); i++)
            {
                manager.AddPlayer(playersIds[i], 1, $"Jogador {i}", new DateTime().AddYears((int)playerAges[i]), 0, 0);
            }

            Assert.Equal(2, manager.GetOlderTeamPlayer(1));
        }
        public void Should_Get_Higher_Salary_Player_Id()
        {
            var manager = new SoccerTeamsManager();

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");

            var playersIds = new List <long>()
            {
                15, 2, 33, 4, 13
            };
            var salary = new List <long>()
            {
                1500, 1800, 300, 1800, 750
            };

            for (int i = 0; i < playersIds.Count(); i++)
            {
                manager.AddPlayer(playersIds[i], 1, $"Jogador {i}", DateTime.Now, 0, salary[i]);
            }

            Assert.Equal(2, manager.GetHigherSalaryPlayer(1));
        }
示例#23
0
        public void Should_Sort_All_Players_By_Skill_When_Get_Top_Players(string skillsMap, int top, string topPlayersIds)
        {
            var playerId      = 1;
            var teamSkillList = skillsMap.Split("|");

            var manager = new SoccerTeamsManager();

            for (long teamId = 1; teamId <= teamSkillList.Length; teamId++)
            {
                manager.AddTeam(teamId, $"Time {teamId}", DateTime.Now, "cor 1", "cor 2");

                var playerSkillList = teamSkillList[teamId - 1].Split(",").Select(x => int.Parse(x)).ToList();

                for (int i = 0; i < playerSkillList.Count; i++)
                {
                    manager.AddPlayer(playerId, teamId, $"Player {playerId}", DateTime.Today, playerSkillList[i], 0);
                    playerId++;
                }
            }

            Assert.Equal(topPlayersIds.Split(",").Select(x => long.Parse(x)).ToList(), manager.GetTopPlayers(top));
        }
示例#24
0
        public void Should_Return_Top_Players()
        {
            var manager = new SoccerTeamsManager();

            Assert.Empty(manager.GetTopPlayers(3));

            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");


            var skillsLevelList = new List <int>()
            {
                10, 20, 40, 40, 50
            };

            for (int i = 1; i < skillsLevelList.Count(); i++)
            {
                manager.AddPlayer(i, 1, $"Jogador {i}", DateTime.Today, skillsLevelList[i], 0);
            }

            Assert.Equal(new List <long>()
            {
                4, 2, 3
            }, manager.GetTopPlayers(3));
        }
示例#25
0
        public void My_Tests()
        {
            var manager = new SoccerTeamsManager();

            // search all Teams
            Assert.Equal(new List <long> {
            }, manager.GetTeams());
            // search top players
            Assert.Equal(new List <long> {
            }, manager.GetTopPlayers(2));
            // insert Teams
            manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2");
            manager.AddTeam(2, "Time 2", DateTime.Now, "cor 1", "cor 2");
            manager.AddTeam(3, "Time 3", DateTime.Now, "cor 3", "cor 4");
            Assert.Throws <UniqueIdentifierException>(() =>
                                                      manager.AddTeam(1, "Time 1", DateTime.Now, "cor 1", "cor 2"));
            // insert Players
            manager.AddPlayer(1, 1, "Jogador 1", new DateTime(1983, 03, 01), 10, 10);
            manager.AddPlayer(2, 1, "Jogador 2", new DateTime(1985, 02, 01), 69, 100);
            manager.AddPlayer(3, 1, "Jogador 3", new DateTime(1987, 12, 01), 65, 100);
            manager.AddPlayer(9, 1, "Jogador 9", new DateTime(1989, 07, 01), 31, 10);
            manager.AddPlayer(6, 1, "Jogador 6", new DateTime(1990, 05, 01), 72, 100);
            manager.AddPlayer(4, 1, "Jogador 4", new DateTime(1992, 09, 01), 86, 100);
            manager.AddPlayer(8, 1, "Jogador 8", new DateTime(1984, 04, 01), 10, 10);
            manager.AddPlayer(5, 1, "Jogador 5", new DateTime(1983, 03, 01), 90, 100);
            manager.AddPlayer(7, 1, "Jogador 7", new DateTime(1999, 03, 01), 100, 100);
            manager.AddPlayer(11, 2, "Jogador 1", new DateTime(1995, 03, 01), 10, 10);
            manager.AddPlayer(12, 2, "Jogador 2", new DateTime(1997, 03, 01), 19, 100);
            manager.AddPlayer(13, 2, "Jogador 3", new DateTime(1983, 03, 01), 52, 100);
            Assert.Throws <UniqueIdentifierException>(() =>
                                                      manager.AddPlayer(1, 1, "Jogador 1", DateTime.Today, 0, 0));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.AddPlayer(99, 99, "Jogador 1", DateTime.Today, 0, 0));
            // search player
            Assert.Equal("Jogador 1", manager.GetPlayerName(1));
            Assert.Throws <PlayerNotFoundException>(() =>
                                                    manager.GetPlayerName(99));
            // search team
            Assert.Equal("Time 1", manager.GetTeamName(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetTeamName(99));
            // search players by team
            Assert.Equal(new List <long> {
                1, 2, 3, 4, 5, 6, 7, 8, 9
            }, manager.GetTeamPlayers(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetTeamPlayers(99));
            // search best player on team
            Assert.Equal(7, manager.GetBestTeamPlayer(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetBestTeamPlayer(99));
            // search oldest player on team
            Assert.Equal(1, manager.GetOlderTeamPlayer(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetOlderTeamPlayer(99));
            // search all Teams
            Assert.Equal(new List <long> {
                1, 2, 3
            }, manager.GetTeams());
            // search higher salary by team
            Assert.Equal(2, manager.GetHigherSalaryPlayer(1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetHigherSalaryPlayer(99));
            // search salary from player
            Assert.Equal(10, manager.GetPlayerSalary(1));
            Assert.Throws <PlayerNotFoundException>(() =>
                                                    manager.GetPlayerSalary(99));
            // search top players
            Assert.Equal(new List <long> {
                7, 5
            }, manager.GetTopPlayers(2));
            // search shirt color from visitor
            Assert.Equal("cor 2", manager.GetVisitorShirtColor(1, 2));
            Assert.Equal("cor 3", manager.GetVisitorShirtColor(1, 3));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetVisitorShirtColor(99, 1));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetVisitorShirtColor(1, 99));
            Assert.Throws <TeamNotFoundException>(() =>
                                                  manager.GetVisitorShirtColor(99, 99));
        }