public async Task ObterRotaComPedagioTest() { var mockRequestJSON = new Mock<IRequestJSON>(); mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync("{ routes: [{ summary: { duration: 1000, distance: 2000, tollFees:[ { prices: { car: 10 } }, { prices: { car: 20 } } ] } }]}"); IRoteirizacaoApi roteirizacaoApiV0 = new RoteirizacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig); var listaCoordendas = new List<CoordenadasModel>(); listaCoordendas.Add(new CoordenadasModel { Latitude = 100, Longitude = 200 }); listaCoordendas.Add(new CoordenadasModel { Latitude = 200, Longitude = 300 }); listaCoordendas.Add(new CoordenadasModel { Latitude = 300, Longitude = 400 }); var rota = await roteirizacaoApiV0.ObterRota(listaCoordendas, 12, "car"); Assert.AreEqual(rota.TempoTotal, 1000.0); Assert.AreEqual(rota.Distancia, 2000.0); Assert.AreEqual(rota.CustoTotal, 30.0); }
public async Task ObterRotaJSONInvalidoTest() { var mockRequestJSON = new Mock<IRequestJSON>(); mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync("{ routes: { summary: { duration: 1000, distance: 2000 } }}"); IRoteirizacaoApi roteirizacaoApiV0 = new RoteirizacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig); var listaCoordendas = new List<CoordenadasModel>(); listaCoordendas.Add(new CoordenadasModel { Latitude = 100, Longitude = 200 }); listaCoordendas.Add(new CoordenadasModel { Latitude = 200, Longitude = 300 }); listaCoordendas.Add(new CoordenadasModel { Latitude = 300, Longitude = 400 }); try { var rota = await roteirizacaoApiV0.ObterRota(listaCoordendas, 12, "car"); } catch (ArgumentException ex) { Assert.AreEqual(ex.Message, "Erro ao calcular a rota."); throw ex; } }
public async Task ObterRotaNaoEncontradaTest() { var mockRequestJSON = new Mock<IRequestJSON>(); mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(null); IRoteirizacaoApi roteirizacaoApiV0 = new RoteirizacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig); var listaCoordendas = new List<CoordenadasModel>(); listaCoordendas.Add(new CoordenadasModel { Latitude = 100, Longitude = 200 }); listaCoordendas.Add(new CoordenadasModel { Latitude = 200, Longitude = 300 }); listaCoordendas.Add(new CoordenadasModel { Latitude = 300, Longitude = 400 }); try { var rota = await roteirizacaoApiV0.ObterRota(listaCoordendas, 12, "car"); } catch (RotaNaoEncontradaException ex) { Assert.AreEqual(ex.Message, "Rota não encotrada"); throw ex; } }