public async Task DeveListarUmaLinhaPorLocalizacaoDeUmaParada() { //arrange var parada = new Domain.Entities.Parada( nome: "Parada 1", new Domain.ValueObjects.Localizacao( latitude: -8.771593, longitude: -63.847208 ) ); var linha = new Domain.Entities.Linha( nome: "Linha 1", id: 1 ); linha.AdicionarParada(parada); await context.AddAsync(parada); await context.AddAsync(linha); await context.SaveChangesAsync(); //act var linhas = await obterLinhasPorParada.Executar(latitude : -8.771593, longitude : -63.847208); //assert Assert.True(linhas.Count == 1); }
public async Task DeveListarAsParadasMaisProximasEmUmRaioDe500Metros() { //arrange var parada1 = new Domain.Entities.Parada( nome: "Parada 1", new Domain.ValueObjects.Localizacao( latitude: -8.771593, longitude: -63.847208 ) ); var parada2 = new Domain.Entities.Parada( nome: "Parada 2", new Domain.ValueObjects.Localizacao( latitude: -8.76983, longitude: -63.84870 ) ); var parada3 = new Domain.Entities.Parada( nome: "Parada 3", new Domain.ValueObjects.Localizacao( latitude: -8.76832, longitude: -63.84265 ) ); var parada4 = new Domain.Entities.Parada( nome: "Parada 4", new Domain.ValueObjects.Localizacao( latitude: -8.77207, longitude: -63.84177 ) ); await context.AddAsync(parada1); await context.AddAsync(parada2); await context.AddAsync(parada3); await context.AddAsync(parada4); await context.SaveChangesAsync(); //act var paradasMaisProximas = await listarParadasMaisProximas.Executar(latitude : -8.771593, longitude : -63.847208, raioEmMetros : 500); //assert Assert.True(paradasMaisProximas.Count == 2); Assert.Contains(paradasMaisProximas, x => x.Nome == "Parada 1"); Assert.Contains(paradasMaisProximas, x => x.Nome == "Parada 2"); }
public async Task Executar(ParadaDto paradaDto) { var parada = new Domain.Entities.Parada( paradaDto.Nome, new Domain.ValueObjects.Localizacao( paradaDto.Localizacao.Latitude, paradaDto.Localizacao.Longitude ) ); await context.AddAsync(parada); await context.SaveChangesAsync(); }
public async Task NaoDeveVincularUmaParadaNaLinhaPoisAParadaJaEstaVinculada() { //arrange var paradaNaLinhaDto = new ParadaNaLinhaDto() { LinhaId = 1, ParadaId = 2 }; var paradaDto = new ParadaDto() { Nome = "Parada 1", Localizacao = new LocalizacaoDto() { Latitude = -8.771593, Longitude = -63.847208 } }; var parada = new Domain.Entities.Parada( paradaDto.Nome, new Domain.ValueObjects.Localizacao( paradaDto.Localizacao.Latitude, paradaDto.Localizacao.Longitude ) ); var linha = new Domain.Entities.Linha( nome: "Linha 1", id: 1 ); linha.AdicionarParada(parada); await context.AddAsync(parada); await context.AddAsync(linha); await context.SaveChangesAsync(); //act await vincularParada.Executar(paradaNaLinhaDto); //assert Assert.False(vincularParada.Notifications.ContainsKey("parada-vinculada")); }
public async Task DeveDesvincularUmaParadaNaLinha() { //arrange var paradaDto = new ParadaDto() { Nome = "Parada 1", Localizacao = new LocalizacaoDto() { Latitude = -8.771593, Longitude = -63.847208 } }; var parada = new Domain.Entities.Parada( paradaDto.Nome, new Domain.ValueObjects.Localizacao( paradaDto.Localizacao.Latitude, paradaDto.Localizacao.Longitude ) ); var linha = new Domain.Entities.Linha( nome: "Linha 1", id: 1 ); linha.AdicionarParada(parada); await context.AddAsync(parada); await context.AddAsync(linha); await context.SaveChangesAsync(); //act await desvincularParada.Executar(linha.Id, parada.Id); //assert Assert.True(linha.Paradas.Count == 0); }
public async Task Executar(ParadaDto paradaDto) { var paradaExiste = await context.Paradas.AnyAsync(x => x.Id == paradaDto.Id); if (paradaExiste) { var parada = new Domain.Entities.Parada( paradaDto.Nome, new Domain.ValueObjects.Localizacao( paradaDto.Localizacao.Latitude, paradaDto.Localizacao.Longitude ), id: paradaDto.Id ); context.Update(parada); await context.SaveChangesAsync(); } else { Notifications.Add("not-found", "Parada não encontrado!"); } }