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