Example #1
0
        public async Task Post_DeveRetornarOk_QuandoRequestForValido()
        {
            //Arrange
            var chaveCampeonato = ChaveClassificacaoBuilder.Novo().ComParticipantesFixos().Build();
            var participantes   = chaveCampeonato.ObterParticipantes();
            var chaveFinalistas = ChaveEtapaBuilder.Novo().ComChaveFinalistas().Build();
            var finalistas      = chaveFinalistas.ObterParticipantes().Select(f => new { f.Titulo, f.Nota }).ToArray();
            var request         = participantes.Select(p => new CampeonatoRequest {
                IdFilme = p.Id
            }).ToArray();

            _wireMockServer
            .Given(Request
                   .Create()
                   .WithPath(new WildcardMatcher(ConfigManager.ApiFilmesSettings.EndpointFilmes))
                   .UsingGet())
            .RespondWith(Response
                         .Create()
                         .WithSuccess()
                         .WithBodyAsJson(participantes));

            //Act
            var response = await _httpClient.PostAsync(_endpoint, request.AsHttpContent());

            //Assert
            response.Should().Be200Ok().And.BeAs(finalistas);
        }
        public void ChaveCampeonato_DeveGerarFalhaAoObterParticipantesPosicaoSemChaveamento()
        {
            //Arrange
            var chave = ChaveEtapaBuilder.Novo().SemChaveamento().Build();

            //Act
            Action act = () => chave.ObterParticipantesPosicao();

            //Assert
            act.Should().Throw <ChaveNaoMontadaException>();
        }
        public void ChaveEtapa_DeveMontarChaveamentoComParticipantes(int qtdeParticipantes)
        {
            //Arrange
            var chave = ChaveEtapaBuilder.Novo().ComParticipantes(qtdeParticipantes).SemChaveamento().Build();

            //Act
            var partidas = chave.MontarChaveamento();

            //Assert
            partidas.Should().HaveCount(qtdeParticipantes / 2);
        }
        public void ChaveCampeonato_DeveObterParticipantesPosicao()
        {
            //Arrange
            var participantes = ChaveEtapaBuilder.Novo().ComChaveFinalistas().ObterParticipantes();
            var chave         = ChaveEtapaBuilder.Novo().ComChaveFinalistas().Build();

            //Act
            var participantesEtapa = chave.ObterParticipantesPosicao();

            //Assert
            participantesEtapa.Should().BeEquivalentTo(participantes, opt => opt
                                                       .Including(f => f.Nota)
                                                       .Including(f => f.Titulo));
        }
        public void ChaveEtapa_DeveDisputarEtapaFinal()
        {
            //Arrange
            var chave     = ChaveEtapaBuilder.Novo().ComChaveFinalistas().Build();
            var finalista = ChaveEtapaBuilder.Novo().ObterFinalista();

            //Act
            var finalistaEtapa = chave.Disputar().First();

            //Assert
            finalistaEtapa.Should().BeEquivalentTo(finalista, opt => opt
                                                   .Including(f => f.Nota)
                                                   .Including(f => f.Titulo));
        }
        public void ChaveClassificacao_DeveDisputarEtapaClassificacao()
        {
            //Arrange
            var chave      = ChaveClassificacaoBuilder.Novo().ComChaveClassificacao().Build();
            var finalistas = ChaveEtapaBuilder.Novo().ComChaveEtapa1().ObterParticipantes();

            //Act
            var finalistasEtapa = chave.Disputar();

            //Assert
            finalistasEtapa.Should().BeEquivalentTo(finalistas, opt => opt
                                                    .Including(f => f.Nota)
                                                    .Including(f => f.Titulo)
                                                    .WithStrictOrdering());
        }