public async Task Get_DeveRetornarCache_QuandoDisponivel()
        {
            //Arrange
            IEnumerable <FilmeModel> cache;

            A.CallTo(() => _apiFixture.MemoryCacheWrapperFake
                     .TryGetValue(_systemSettings.FilmesCacheKey, out cache))
            .CallsBaseMethod();

            var chaveCampeonato = ChaveClassificacaoBuilder.Novo().ComParticipantesFixos().Build();
            var participantes   = chaveCampeonato.ObterParticipantes();

            _wireMockServer
            .Given(_request)
            .RespondWith(Response.Create().WithSuccess().WithBodyAsJson(participantes));

            //Act
            await _httpClient.GetAsync(_endpoint);

            _wireMockServer.Reset();
            _wireMockServer
            .Given(_request)
            .RespondWith(Response.Create().WithNotFound());

            var responseApiCache = await _httpClient.GetAsync(_endpoint);

            //Assert
            responseApiCache.Should().Be200Ok().And.BeAs(participantes);
        }
Exemple #2
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);
        }
Exemple #3
0
        public CampeonatoDominioTests()
        {
            _filmeDominioFake  = A.Fake <IFilmeDominio>();
            _campeonatoDominio = new CampeonatoDominio(Options.Create(_systemSettings), _filmeDominioFake);

            _participantes = ChaveClassificacaoBuilder.Novo().ComParticipantesFixos().ObterParticipantes();

            A.CallTo(() => _filmeDominioFake.ObterFilmesAsync()).Returns(_participantes);
        }
        public void ChaveCampeonato_DeveGerarFalhaAoGerarChaveComListaVaziaDeParticipantes()
        {
            //Arrange
            var participantesInvalidos = new List <FilmeModel>();

            //Act
            Action act = () => { ChaveClassificacaoBuilder.Novo().ComParticipantes(participantesInvalidos).Build(); };

            //Assert
            act.Should().Throw <Exception>().WithInnerException <QtdeIncorretaRegraChaveamentoException>();
        }
        public void ChaveCampeonato_DeveGerarFalhaComNumeroParticipantesIncorreto()
        {
            //Arrange
            var qtdeParticipantesIncorreta = UtilFaker.FakerHub.Random.Odd(1, 99);

            //Act
            Action act = () => { ChaveClassificacaoBuilder.Novo().ComParticipantes(qtdeParticipantesIncorreta).Build(); };

            //Assert
            act.Should().Throw <Exception>().WithInnerException <QtdeIncorretaRegraChaveamentoException>();
        }
        public void ChaveClassificacao_DeveMontarChaveamentoComQtdeParticipantes(int qtdeParticipantes)
        {
            //Arrange
            var filmes = _filmeModelFaker.Generate(qtdeParticipantes);
            var chave  = ChaveClassificacaoBuilder.Novo().ComParticipantes(filmes).SemChaveamento().Build();

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

            //Assert
            partidas.Should().HaveCount(qtdeParticipantes / 2);
        }
        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());
        }
        public async Task Get_DeveRetornarOk_QuandoRequestForValido()
        {
            //Arrange
            var chaveCampeonato = ChaveClassificacaoBuilder.Novo().ComParticipantesFixos().Build();
            var participantes   = chaveCampeonato.ObterParticipantes();

            _wireMockServer
            .Given(_request)
            .RespondWith(Response.Create().WithSuccess().WithBodyAsJson(participantes));

            //Act
            var response = await _httpClient.GetAsync(_endpoint);

            //Assert
            response.Should().Be200Ok().And.BeAs(participantes);
        }