public void DeveDesempatarEntreDuasQuadras() { var identificadorDeQuadra = new IdentificaQuatroCartasComValoresIguais(); var maoA = new List <Carta> { CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir() }; var maoB = new List <Carta> { CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir() }; var maoVencedoraEsperada = maoB.Select(carta => carta).ToList(); var maoVencedoraEncontrada = new DesempateDeQuadra(identificadorDeQuadra).Desempatar(maoA, maoB); Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada); }
public void DeveDesempatarEntreDoisFullHouse() { var identificadorDeTrinca = new IdentificaTresCartasComValoresIguais(); var maoA = new List <Carta> { CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Spades).Construir() }; var maoB = new List <Carta> { CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Diamonds).Construir() }; var maoVencedoraEsperada = maoA.Select(carta => carta.HashDaCarta).ToList(); var maoVencedoraEncontrada = new DesempateDeFullHouse(identificadorDeTrinca) .Desempatar(maoA, maoB).Select(carta => carta.HashDaCarta).ToList(); Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada); }
public void NaoDeveEncontrarAJogadaNaMaoSeNaoHouverUmPar() { _maoDe5Cartas[3] = CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Diamonds).Construir(); var jogadaEncontradaNaMao = _umParDeCartas.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveEncontrarVencedorQuandoOsFlushsSaoIguais() { _maoB[4] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir(); var jogadaEncontrada = new DesempateDeFlush(_identificadorDeCartaMaisAlta).Desempatar(_maoA, _maoB); Assert.Empty(jogadaEncontrada); }
public void DeveEncontrarACartaMaisAlta() { var cartaEsperada = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(); var cartaEncontrada = new IdentificaCartaMaisAlta().IdentificarCartas(_listaDeCartas).First(); Assert.Equal(cartaEsperada.Valor, cartaEncontrada.Valor); }
public void NaoDeveEncontrarAJogadaNaMaoSeAlgumaCartaForDeNaipeDiferente() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir(); var jogadaEncontradaNaMao = _flush.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveEncontrarAJogadaNaMaoQuandoNaoTiverUmPar() { _maoDe5Cartas[1] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _fullHouse.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveEncontrarAJogadaNaMaoSeNaoHouverTrinca() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _umaTrinca.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveDesempatarEntreCartasMaisAltasEmMaosIguais() { _maoB[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir(); var jogadaVencedoraEncontrada = _desempateDeCartaMaisAlta.Desempatar(_maoA, _maoB); Assert.Empty(jogadaVencedoraEncontrada); }
public void NaoDeveEncontrarAJogadaNaMaoSeNaoForUmaSequencia() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _straight.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveIdentificarSeNaoHouverQuatroCartasComValorIgual() { _listaDeCartas[0] = CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(); var quadraEncontrada = new IdentificaQuatroCartasComValoresIguais().IdentificarCartas(_listaDeCartas); Assert.Empty(quadraEncontrada); }
public void NaoDeveEncontrarAJogadaNaMaoSePeloMenosUmNaipeForDiferentes() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(13).ComNaipe(Naipes.Diamonds).Construir(); var jogadaEncontradaNaMao = _royalFlush.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveEncontrarAJogadaNaMaoSeASequenciaEstiverQuebrada() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _royalFlush.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void DeveConverterUmaCartaValida(string cartaDeEntrada, int valor, Naipes naipe) { var cartaEsperada = CartaBuilder.UmaCarta().ComNaipe(naipe).ComValor(valor).Construir(); var cartaConvertida = new ConversorDeCarta(new ConversorDeValorDeCarta(), new ConversorDeNaipe()).Converter(cartaDeEntrada); Assert.Equal(cartaEsperada.Valor, cartaConvertida.Valor); Assert.Equal(cartaEsperada.Naipe, cartaConvertida.Naipe); }
public void NaoDeveEncontrarAJogadaNaMaoSeNaoHouverDoisPares() { _maoDe5Cartas[1] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _doisParesDiferentes.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveGerarClassificacaoCasoHajaCartasDuplicadas() { var cartaBuilderGerada = new CartaBuilder("A;O|K;C", "Q;C|10;C|K;C|8;P|A;O"); var maoGerada = new Mao(cartaBuilderGerada.CartasJogador[0], cartaBuilderGerada.CartasJogador[1]); string mensagemDeErro = Assert.Throws <Exception>(() => maoGerada.Classificar(cartaBuilderGerada.CartasMesa)).Message; Assert.Equal($"{Ressource.MaoMsgCartasClassificacaoDuplicadas} A;O|K;C", mensagemDeErro); }
public void NaoDeveIndetificarSeUmNaipeForDiferente() { _listaDeCartas[0] = CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(); var todosOsNaipesSaoIguais = new IdentificaCincoCartasComNaipesIguais().IdentificarCartas(_listaDeCartas).Count == 5; Assert.False(todosOsNaipesSaoIguais); }
public void DeveDesempatarEntreDoisParesDiferentesComParMaiorIgual() { _maoA[3] = CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(); var jogadaVencedoraEsperada = _maoB.Select(carta => carta.HashDaCarta).ToList(); var jogadaVencedoraEncontrada = new DesempateDeDoisPares(_identificadorDePar) .Desempatar(_maoA, _maoB).Select(carta => carta.HashDaCarta).ToList(); Assert.Equal(jogadaVencedoraEsperada, jogadaVencedoraEncontrada); }
public void DeveClassificarEGerarPontuacaoDaJogada(string cartasJogador, string cartasMesa, long pontuacaoEsperada, string classificacaoEsperada) { var cartaBuilderGerada = new CartaBuilder(cartasJogador, cartasMesa); var maoGerada = new Mao(cartaBuilderGerada.CartasJogador[0], cartaBuilderGerada.CartasJogador[1]); maoGerada.Classificar(cartaBuilderGerada.CartasMesa); Assert.Equal(classificacaoEsperada, maoGerada.Classificacao); Assert.Equal(pontuacaoEsperada, maoGerada.Pontuacao); }
public void NaoDeveEncontrarTresCartasIguais() { _listaDeCartas[0] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir(); var tresCartasEsperadas = _tresCartasEsperadas.Select(carta => carta.HashDaCarta).ToList(); var tresCartasEncontradas = new IdentificaTresCartasComValoresIguais().IdentificarCartas(_listaDeCartas) .Select(carta => carta.HashDaCarta).ToList(); Assert.NotEqual(tresCartasEsperadas, tresCartasEncontradas); }
public IdentificadorDeQuatroCartasComValoresIguaisTeste() { _listaDeCartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir() }; }
public void DeveLimparAMaoDoJogadorAposEncerrarAJogada() { var cartaBuilder = new CartaBuilder("A;P|K;O"); var fichasGanhas = 500; _jogadorDefault.ReceberCarta(cartaBuilder.CartasJogador[0]); _jogadorDefault.ReceberCarta(cartaBuilder.CartasJogador[1]); _jogadorDefault.EncerrarMao(fichasGanhas); Assert.Null(_jogadorDefault.Mao); }
public IdentificaCincoCartasComNaipesIguaisTeste() { _listaDeCartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir() }; }
public void NaoDeveDarCartasAJogadorEliminado() { var cartaBuilder = new CartaBuilder("A;P|K;O"); _jogadorDefault.TrocarStatus(StatusJogador.Eliminado); _jogadorDefault.ReceberCarta(cartaBuilder.CartasJogador[0]); _jogadorDefault.ReceberCarta(cartaBuilder.CartasJogador[1]); Assert.Null(_jogadorDefault.Mao); }
public void DeveDesempatarEntreDuasTrincasIguais() { _maoB = _maoA.Select(carta => carta).ToList(); _maoA[4] = CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Hearts).Construir(); var maoVencedoraEsperada = _maoA.Select(carta => carta.HashDaCarta).ToList(); var maoVencedoraEncontrada = new DesempateDeTrinca(_identificadorDeTrinca, _identificadorDeCartaMaisAlta) .Desempatar(_maoA, _maoB).Select(carta => carta.HashDaCarta).ToList(); Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada); }
public IdentificaSequenciaDeCartasTeste() { _listaDeCartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(4).Construir(), CartaBuilder.UmaCarta().ComValor(3).Construir(), CartaBuilder.UmaCarta().ComValor(2).Construir(), CartaBuilder.UmaCarta().ComValor(6).Construir(), CartaBuilder.UmaCarta().ComValor(5).Construir() }; }
public void DeveDesempatarEntreDoisParesIguais() { _maoA = _maoB.Select(carta => carta).ToList(); _maoA[4] = CartaBuilder.UmaCarta().ComValor(12).ComNaipe(Naipes.Hearts).Construir(); var maoVencedoraEsperada = _maoA.Select(carta => carta.HashDaCarta).ToList(); var maoVencedoraEncontrada = _desempateDeUmPar.Desempatar(_maoA, _maoB) .Select(carta => carta.HashDaCarta).ToList(); Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada); }
public void DeveReceberCartas() { var cartaBuilder = new CartaBuilder("A;P|K;O"); var quantidadeDeCartasEsperada = 2; _jogadorDefault.ReceberCarta(cartaBuilder.CartasJogador[0]); _jogadorDefault.ReceberCarta(cartaBuilder.CartasJogador[1]); Assert.True(_jogadorDefault.Mao.Cartas.Any()); Assert.Equal(quantidadeDeCartasEsperada, _jogadorDefault.Mao.Cartas.Count()); Assert.Equal(cartaBuilder.CartasJogador[0].Id, _jogadorDefault.Mao.Cartas[0].Id); Assert.Equal(cartaBuilder.CartasJogador[1].Id, _jogadorDefault.Mao.Cartas[1].Id); }
public UmParDeCartasTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Hearts).Construir() }; var identificadorDePar = new IdentificaDuasCartasComValoresIguais(); _umParDeCartas = new UmParDeCartas(identificadorDePar); }
public DoisParesDiferentesTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Hearts).Construir() }; var identificadorDePar = new IdentificaDuasCartasComValoresIguais(); _doisParesDiferentes = new DoisParesDiferentes(identificadorDePar); }