public void Deve_gravar_no_banco_a_exploracao_da_sonda_iniciando_em_12N_com_a_serie_de_instruncoes_LMLMLMLMM()
        {
            var    posicaoDesejada = new Posicao(1, 2);
            Sondas sondas          = new Sondas(db);

            sonda = new Sonda(especificacaoDeNegocio, nomeDaSonda);
            sonda.Explorar(planalto);
            sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte);
            sonda.Vire(DirecaoMovimento.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Vire(DirecaoMovimento.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Vire(DirecaoMovimento.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Vire(DirecaoMovimento.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Move(movimentoSempreParaFrente);

            sondas.Gravar(sonda);

            var posicaoEsperada = new Posicao(1, 3);

            Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual);
            Assert.AreEqual(nomeDaSonda, sonda.Nome);
            Assert.AreEqual(DirecaoCardinal.Norte, sonda.DirecaoCardinalAtual);
        }
Exemple #2
0
        private void ExecutarExploracao(int sondaNumero)
        {
            Sondas sondas = new Sondas(bancoDeDados);

            Planalto planalto = new Planalto();

            planalto.Criar(coordenada);

            movimentoSempreParaFrente = new MovimentoParaFrente();

            var nomeDaSonda = $"Mark {sondaNumero}";

            Sonda sonda = ObterSonda(sondas, nomeDaSonda);

            sonda.Explorar(planalto);

            sonda.IniciarEm(posicaoInicioalDaSonda, direcaoCardinalInicioalDaSonda);

            ExecutarInstrucaoDeMovimentoNaSonda(sonda, movimentoSempreParaFrente);

            sondas.Gravar(sonda);

            sondas = null;

            var direcao = sonda.DirecaoCardinalAtual.ToString().ToUpper().Substring(0, 1).Replace("O", "W").Replace("L", "E");

            if (sondaNumero > 1)
            {
                resultado += "-";
            }

            resultado += $"{sonda.PosicaoAtual.X} {sonda.PosicaoAtual.Y} {direcao}";
        }
Exemple #3
0
        private static Sonda ObterSonda(Sondas sondas, string nomeDaSonda)
        {
            Sonda sonda = sondas.ObterPorNome(nomeDaSonda);

            if (sonda == null)
            {
                sonda = new Sonda(nomeDaSonda);
            }

            return(sonda);
        }
Exemple #4
0
        public void Nao_deve_gravar_uma_sonda_com_dados_invalidos()
        {
            IMongoDatabase db     = new ProvedorDeAcesso().Criar(conexaoComOBanco);
            Sondas         sondas = new Sondas(db);

            sonda = new Sonda("Mark Ierro");

            sondas.Gravar(sonda);

            Assert.IsTrue(sonda.EspecificacaoDeNegocio.HouveViolacao());
        }
Exemple #5
0
        private Sonda ObterSonda(Sondas sondas, string nomeDaSonda)
        {
            Sonda sonda = sondas.ObterPorNome(nomeDaSonda);

            if (sonda == null)
            {
                sonda = new Sonda(especificacaoDeNegocio, nomeDaSonda);
            }

            return(sonda);
        }
Exemple #6
0
        public Sonda AddSonda(Sonda sonda)
        {
            if (sonda.X >= Cartesiano.X)
            {
                throw new ArgumentException("O X da sonda é maior do que do planalto!");
            }

            if (sonda.Y >= Cartesiano.Y)
            {
                throw new ArgumentException("O Y da sonda é maior do que do planalto!");
            }

            sonda.SetArea(this);
            Sondas.Add(sonda);
            return(sonda);
        }
Exemple #7
0
        public void Deve_fazer_a_exploracao_com_a_sonda_iniciando_em_12N_com_a_serie_de_instruncoes_LMLMLMLMM()
        {
            IMongoDatabase db     = new ProvedorDeAcesso().Criar(conexaoComOBanco);
            Sondas         sondas = new Sondas(db);

            sonda = new Sonda("Mark I");
            sonda.Explorar(planalto);

            var posicaoDesejada = new Posicao(1, 2);
            var posicaoEsperada = new Posicao(1, 3);

            sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte);

            sonda.Vire(Direcao.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Vire(Direcao.Esqueda);
            sonda.Move(movimentoSempreParaFrente);

            sondas.Gravar(sonda);
            var idGerado = sonda.Id;

            sonda = sondas.ObterPorId(idGerado);

            sonda.Vire(Direcao.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Vire(Direcao.Esqueda);
            sonda.Move(movimentoSempreParaFrente);
            sonda.Move(movimentoSempreParaFrente);

            sondas.Gravar(sonda);
            var idEsperado = sonda.Id;

            Assert.AreNotEqual("00000000-0000-0000-0000-000000000000", sonda.Id.ToString());
            Assert.AreEqual(idEsperado, idGerado);
            Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual);
            Assert.AreEqual(DirecaoCardinal.Norte, sonda.DirecaoAtual);
        }