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_fazer_a_exploracao_virando_e_movendo_a_sonda_para_uma_nova_coordenada() { var posicaoDesejada = new Posicao(1, 2); var posicaoEsperada = new Posicao(0, 2); sonda.IniciarEm(posicaoDesejada, DirecaoCardinal.Norte); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual); Assert.AreEqual(DirecaoCardinal.Oeste, sonda.DirecaoCardinalAtual); }
private void ExecutarInstrucaoDeMovimentoNaSonda(Sonda sonda, IMovimento movimentoSempreParaFrente) { for (int contador = 0; contador < serieDeInstrucoesIndicandoParaASondaComoElaDeveraExplorarOPlanalto.Length; contador++) { var instrucao = serieDeInstrucoesIndicandoParaASondaComoElaDeveraExplorarOPlanalto[contador]; switch (instrucao) { case "L": sonda.Vire(Direcao.Esqueda); break; case "R": sonda.Vire(Direcao.Direita); break; case "M": sonda.Move(movimentoSempreParaFrente); break; } } }
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); }
public void Deve_fazer_a_exploracao_com_a_sonda_iniciando_em_12N_com_a_serie_de_instruncoes_LMLMLMLMM() { 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); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Vire(Direcao.Esqueda); sonda.Move(movimentoSempreParaFrente); sonda.Move(movimentoSempreParaFrente); Assert.IsFalse(sonda.QuebraDeEspeficacao.HouveViolacao()); Assert.AreEqual(posicaoEsperada, sonda.PosicaoAtual); Assert.AreEqual(DirecaoCardinal.Norte, sonda.DirecaoAtual); }
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); }