public void DadoUmTorneioComQuatroJogadoresEDuasPartidasIniciaisOVencedorDeveraSerAllen()
        {
            var allen    = new Jogador("Allen", (ElementoJogada)'S');
            var omer     = new Jogador("Omer", (ElementoJogada)'P');
            var davidE   = new Jogador("David E.", (ElementoJogada)'R');
            var richardX = new Jogador("Richard X.", (ElementoJogada)'P');


            var partida3 = new Partida();

            partida3.AdicionarJogador(allen);
            partida3.AdicionarJogador(omer);

            var partida4 = new Partida();

            partida4.AdicionarJogador(davidE);
            partida4.AdicionarJogador(richardX);

            var torneio = new Torneio();

            torneio.AdicionarPartidas(partida3);
            torneio.AdicionarPartidas(partida4);

            torneio = new Jogo().RealizarDisputasTorneio(torneio.CarregarPartidasIncluidas());

            Assert.AreEqual(allen, torneio.Vencedor);
        }
        public void DadoUmTorneioComQuatroJogadoresEDuasPartidasIniciaisOVencedorDeveraSerRichard()
        {
            var armando = new Jogador("Armando", (ElementoJogada)'P');
            var dave    = new Jogador("Dave", (ElementoJogada)'S');
            var richard = new Jogador("Richard", (ElementoJogada)'R');
            var michael = new Jogador("Michael", (ElementoJogada)'S');

            var partida1 = new Partida();

            partida1.AdicionarJogador(armando);
            partida1.AdicionarJogador(dave);

            var partida2 = new Partida();

            partida2.AdicionarJogador(richard);
            partida2.AdicionarJogador(michael);

            var torneio = new Torneio();

            torneio.AdicionarPartidas(partida1);
            torneio.AdicionarPartidas(partida2);

            torneio = new Jogo().RealizarDisputasTorneio(torneio.CarregarPartidasIncluidas());

            Assert.AreEqual(richard, torneio.Vencedor);
        }
示例#3
0
        public void DadaUmaPartidaOndeAlgumJogadorInformarElementoNaoExistenteDeveraRetornarNoSuchStrategyError()
        {
            var partida = new Partida();

            partida.AdicionarJogador(new Jogador("Joao", (ElementoJogada)'x'));
            partida.AdicionarJogador(new Jogador("Jamilton", (ElementoJogada)'R'));

            new Jogo().RealizarDisputaPartida(partida);
        }
示例#4
0
        public void SetUp()
        {
            var jogadoresDaPartida = new [] { "jogador1", "jogador2", "jogador3", "jogador4" };

            _partidaCom4Jogadores = new Partida();
            _partidaCom4Jogadores.AdicionarJogador(jogadoresDaPartida[0]);
            _partidaCom4Jogadores.AdicionarJogador(jogadoresDaPartida[1]);
            _partidaCom4Jogadores.AdicionarJogador(jogadoresDaPartida[2]);
            _partidaCom4Jogadores.AdicionarJogador(jogadoresDaPartida[3]);
        }
示例#5
0
        public void DadaUmaPartidaOndeInformarMaisDeDoisJogadoresDeveraRetornarWrongNumberOfPlayersError()
        {
            var partida = new Partida();

            partida.AdicionarJogador(new Jogador("Joao", (ElementoJogada)'S'));
            partida.AdicionarJogador(new Jogador("Jamilton", (ElementoJogada)'R'));
            partida.AdicionarJogador(new Jogador("Josue", (ElementoJogada)'R'));

            new Jogo().RealizarDisputaPartida(partida);
        }
示例#6
0
        public void DadaUmaPartidaOndePrimeiroJogadorUsaElementoPapelSegundoUtilizaElementoPedraPartidaDeveConterDoisJogadoresVencedorSeraPrimeiroJogador()
        {
            var vencedorEsperado = new Jogador("Joao", (ElementoJogada)'P');

            var partida = new Partida();

            partida.AdicionarJogador(new Jogador("Jamilton", (ElementoJogada)'R'));
            partida.AdicionarJogador(vencedorEsperado);

            partida = new Jogo().RealizarDisputaPartida(partida);

            Assert.AreEqual(2, partida.Jogadores.Count);
            Assert.AreEqual(vencedorEsperado, partida.Vencedor);
        }
示例#7
0
        public void DadaUmaPartidaOndeDoisJogadoresUtilizaremTesouraPartidaDeveConterDoisJogadoresVencedorSeraPrimeiroAJogarTesoura()
        {
            var vencedorEsperado = new Jogador("Joao", (ElementoJogada)'S');

            var partida = new Partida();

            partida.AdicionarJogador(vencedorEsperado);
            partida.AdicionarJogador(new Jogador("Jamilton", (ElementoJogada)'S'));

            partida = new Jogo().RealizarDisputaPartida(partida);

            Assert.AreEqual(2, partida.Jogadores.Count);
            Assert.AreEqual(vencedorEsperado, partida.Vencedor);
        }
示例#8
0
        public void NaoDeveCriarUmaPartidaComJogadorVazio()
        {
            var partida = new Partida();

            var message = Assert.ThrowsException <ExcecaoDeDominio>(() => partida.AdicionarJogador(string.Empty)).Message;

            Assert.AreEqual(message, "Jogador inicial da partida é obrigatório");
        }
示例#9
0
        public void NaoDeveAdicionarJogadorNulo()
        {
            var partida = new Partida();

            var message = Assert.ThrowsException <ExcecaoDeDominio>(() => partida.AdicionarJogador(null)).Message;

            Assert.AreEqual(message, "Jogador inicial da partida é obrigatório");
        }
示例#10
0
        public void DeveTerOpcaoDeAdcionarJogador()
        {
            const string jogador = "343er";
            var          partida = new Partida();

            partida.AdicionarJogador(jogador);

            Assert.IsTrue(partida.Jogadores.Exists(j => j.Nome == jogador));
        }
        public void DadoUmTorneioComOitoJogadoresEQuatroPartidasIniciaisOVencedorDeveraSerRichard()
        {
            var armando = new Jogador("Armando", (ElementoJogada)'P');
            var dave    = new Jogador("Dave", (ElementoJogada)'S');
            var richard = new Jogador("Richard", (ElementoJogada)'R');
            var michael = new Jogador("Michael", (ElementoJogada)'S');

            var allen    = new Jogador("Allen", (ElementoJogada)'S');
            var omer     = new Jogador("Omer", (ElementoJogada)'P');
            var davidE   = new Jogador("David E.", (ElementoJogada)'R');
            var richardX = new Jogador("Richard X.", (ElementoJogada)'P');

            var partida1 = new Partida();

            partida1.AdicionarJogador(armando);
            partida1.AdicionarJogador(dave);

            var partida2 = new Partida();

            partida2.AdicionarJogador(richard);
            partida2.AdicionarJogador(michael);

            var partida3 = new Partida();

            partida3.AdicionarJogador(allen);
            partida3.AdicionarJogador(omer);

            var partida4 = new Partida();

            partida4.AdicionarJogador(davidE);
            partida4.AdicionarJogador(richardX);

            var torneio = new Torneio();

            torneio.AdicionarPartidas(partida1);
            torneio.AdicionarPartidas(partida2);
            torneio.AdicionarPartidas(partida3);
            torneio.AdicionarPartidas(partida4);

            torneio = new Jogo().RealizarDisputasTorneio(torneio.CarregarPartidasIncluidas());

            Assert.AreEqual(richard, torneio.Vencedor);
        }
示例#12
0
        public void DeveDesconectarJogadorDaParida()
        {
            var partidaComJogador = new Partida();

            partidaComJogador.AdicionarJogador(_nomeDoJogador);
            _partidaRepositorio.Setup(r => r.ObterPorNomeDoJogador(_nomeDoJogador)).Returns(partidaComJogador);

            _gerenciadorDePartida.DesconectarJogador(_nomeDoJogador);

            Assert.IsFalse(partidaComJogador.Jogadores.Exists(j => j.Nome == _nomeDoJogador));
        }
示例#13
0
        public void NaoDeveCriarNovaPartidaQuandoUsuarioJaEstaEmUma()
        {
            var partidaComJogador = new Partida();

            partidaComJogador.AdicionarJogador(_nomeDoJogador);
            _partidaRepositorio.Setup(r => r.ObterPorNomeDoJogador(_nomeDoJogador)).Returns(partidaComJogador);

            _gerenciadorDePartida.NovaPartida(_nomeDoJogador);

            _partidaRepositorio.Verify(r => r.Adicionar(It.IsAny <Partida>()), Times.Never);
        }
示例#14
0
        public void NovaPartida(string nomeDoJogador)
        {
            var partidaDoJogador = _partidaRepositorio.ObterPorNomeDoJogador(nomeDoJogador);

            if (partidaDoJogador != null)
            {
                return;
            }
            var partida = new Partida();

            partida.AdicionarJogador(nomeDoJogador);
            _partidaRepositorio.Adicionar(partida);
        }
示例#15
0
        public void NaoDevePartidaTerMaisQue4Jogadores()
        {
            var message = Assert.ThrowsException <ExcecaoDeDominio>(() => _partidaCom4Jogadores.AdicionarJogador("jogador5")).Message;

            Assert.AreEqual(message, "Uma partida não pode ter mais que 4 jogadores");
        }