/// <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); }
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); }
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); }
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); }