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