public void Deve_iniciar_a_exploracao_em_uma_coordenada_inicial() { var posicaoDesejada = new Posicao(1, 2); var posicaoEsperada = new Posicao(1, 2); sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte); Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual); }
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}"; }
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); }
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 Sonda ObterPorId(Guid id) { var coordenada = new Coordenada(5, 5); var planalto = new Planalto(); planalto.Criar(coordenada); var movimentoSempreParaFrente = new MovimentoParaFrente(); var sonda = new Sonda("Mark I"); sonda.Explorar(planalto); var posicaoDesejada = new Posicao(1, 2); sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); return(sonda); }
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); }