Example #1
0
        /// <summary>
        /// Compara a nota entre dois filmes, e retorna um objeto com o filme vencedor e o filme perdedor da disputa.
        /// Em caso de empate, o título é comparado; o primeiro em ordem alfabética vence.
        /// </summary>
        public DisputaFilmes DisputarFilmes(Filme filmeA, Filme filmeB)
        {
            DisputaFilmes disputa = new DisputaFilmes();

            if (filmeA.Nota == filmeB.Nota)
            {
                if (filmeA.Titulo.CompareTo(filmeB.Titulo) < 0)
                {
                    disputa.Vencedor = filmeA;
                    disputa.Perdedor = filmeB;
                }
                else
                {
                    disputa.Vencedor = filmeB;
                    disputa.Perdedor = filmeA;
                }
            }
            else if (filmeA.Nota > filmeB.Nota)
            {
                disputa.Vencedor = filmeA;
                disputa.Perdedor = filmeB;
            }
            else
            {
                disputa.Vencedor = filmeB;
                disputa.Perdedor = filmeA;
            }

            return(disputa);
        }
Example #2
0
        public void GerarTorneio_FinalFilmeAvsFilmeC_RetornaFilmeAVencedorFilmeCPerdedor()
        {
            // Quartas: AxH, BxG, CxF, DxE
            // Semifinais: AxB, CxD
            // Finais: AxC
            // Campeão: A
            DisputaFilmes expected = new DisputaFilmes();

            expected.Vencedor = fixture.Filmes.Find(x => x.Titulo == "A");
            expected.Perdedor = fixture.Filmes.Find(x => x.Titulo == "C");
            DisputaFilmes actual = _FilmesService.GerarTorneio(fixture.Filmes).Resultado;

            Assert.Equal(expected.Vencedor, actual.Vencedor);
        }
Example #3
0
        public void DisputarFilmes_FilmeBNotaMaior_RetornaFilmeB()
        {
            // Arrange
            Filme filmeA = new Filme()
            {
                Nota = 1
            };
            Filme filmeB = new Filme()
            {
                Nota = 2
            };

            // Act
            DisputaFilmes expected = new DisputaFilmes();

            expected.Vencedor = filmeB;
            expected.Perdedor = filmeA;
            DisputaFilmes actual = _FilmesService.DisputarFilmes(filmeA, filmeB);

            // Assert
            Assert.Equal(expected.Vencedor, actual.Vencedor);
        }
Example #4
0
        public void DisputarFilmes_NotasIguaisFilmeATituloAntes_RetornaFilmeA()
        {
            // Arrange
            Filme filmeA = new Filme()
            {
                Titulo = "A",
                Nota   = 1
            };
            Filme filmeB = new Filme()
            {
                Titulo = "B",
                Nota   = 1
            };

            // Act
            DisputaFilmes expected = new DisputaFilmes();

            expected.Vencedor = filmeA;
            expected.Perdedor = filmeB;
            DisputaFilmes actual = _FilmesService.DisputarFilmes(filmeA, filmeB);

            // Assert
            Assert.Equal(expected.Vencedor, actual.Vencedor);
        }