Exemplo n.º 1
0
        public void Gravar(Sonda sonda)
        {
            try
            {
                if (sonda.HouveViolacao())
                {
                    return;
                }

                var sondaExiste = ObterPorNome(sonda.Nome);
                if (sondaExiste == null)
                {
                    Todas().InsertOne(sonda);
                }
                else
                {
                    Expression <Func <Sonda, bool> > filtro = filtra => filtra.Id.Equals(sonda.Id);
                    Todas().ReplaceOne(filtro, sonda);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public void Deve_informar_que_houve_uma_quebra_na_regra_de_negocio_na_qual_o_eixo_desejado_esta_fora_da_malha_para_exploracao()
        {
            var regraDeNegocio = new RegraDeNegocio("Posição fora da faixa (Malha do Planalto) para exploração.");

            var posicaoDesejada = new Posicao(6, 2);

            sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte);

            Assert.IsTrue(sonda.HouveViolacao());
            Assert.IsTrue(sonda.EspecificacaoDeNegocio.Contem(regraDeNegocio));
        }
Exemplo n.º 3
0
        public void Deve_fazer_a_exploracao_com_a_sonda_iniciando_em_12N_com_a_serie_de_instruncoes_LMLMLMLMM()
        {
            var posicaoDesejada = new Posicao(1, 2);

            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);

            var posicaoEsperada = new Posicao(1, 3);

            Assert.IsFalse(sonda.HouveViolacao());
            Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual);
            Assert.AreEqual(DirecaoCardinal.Norte, sonda.DirecaoCardinalAtual);
        }