Ejemplo n.º 1
0
        public void Winner_Three_Round()
        {
            // Arrange
            var players     = _fixture.GetMovies();
            var competition = new Competition(Guid.NewGuid(), 8);

            competition.AddPlayers(players);

            // Act
            competition.Start();
            var winners = competition.GetBracketByRound(3).GetWinners();

            // Assert
            Assert.Equal("Vingadores: Guerra Infinita", winners[0].Title);
        }
Ejemplo n.º 2
0
        public void Classification_Last_Round()
        {
            // Arrange
            var players     = _fixture.GetMovies();
            var competition = new Competition(Guid.NewGuid(), 8);

            competition.AddPlayers(players);

            // Act
            competition.Start();
            var ranking = competition.GetBracketByRound(3).Ranking.ToList();

            // Assert
            Assert.Equal("Vingadores: Guerra Infinita", ranking[0].Title);
            Assert.Equal("Os Incríveis 2", ranking[1].Title);
        }
Ejemplo n.º 3
0
        public void Winner_First_Round()
        {
            // Arrange
            var players     = _fixture.GetMovies();
            var competition = new Competition(Guid.NewGuid(), 8);

            competition.AddPlayers(players);

            // Act
            competition.Start();
            var winners = competition.GetBracketByRound(1).GetWinners();

            // Assert
            Assert.Equal("Vingadores: Guerra Infinita", winners[0].Title);
            Assert.Equal("Thor: Ragnarok", winners[1].Title);
            Assert.Equal("Os Incríveis 2", winners[2].Title);
            Assert.Equal("Jurassic World: Reino Ameaçado", winners[3].Title);
        }
Ejemplo n.º 4
0
        public void Sort_Movies()
        {
            // Arrange
            var players     = _fixture.GetMovies();
            var competition = new Competition(Guid.NewGuid(), 8);

            competition.AddPlayers(players);

            // Act
            var movies = competition.SortPlayersByTitle();

            // Assert
            Assert.Equal("Deadpool 2", movies[0].Title);
            Assert.Equal("Han Solo: Uma História Star Wars", movies[1].Title);
            Assert.Equal("Hereditário", movies[2].Title);
            Assert.Equal("Jurassic World: Reino Ameaçado", movies[3].Title);
            Assert.Equal("Oito Mulheres e um Segredo", movies[4].Title);
            Assert.Equal("Os Incríveis 2", movies[5].Title);
            Assert.Equal("Thor: Ragnarok", movies[6].Title);
            Assert.Equal("Vingadores: Guerra Infinita", movies[7].Title);
        }
Ejemplo n.º 5
0
        public async Task <ICommandResult> Handler(NewCompetitionCommand command)
        {
            var movies = await _movieRepository.GetByIdsAsync(command.PlayerIds);

            var competition = new Competition(Guid.NewGuid(), command.NumberOfPlayers);

            competition.AddPlayers(movies.ToList());

            var validator      = new CompetitionValidator();
            var validateResult = validator.Validate(competition);

            if (!validateResult.IsValid)
            {
                return(new ValidationFailureEvent(validateResult.Errors));
            }

            competition.Start();
            var ranking = competition.GetBracketByRound(competition.NumberOfRounds).Ranking;

            return(new CompetitionCompletedEvent(ranking.ToList()));
        }