public async Task CoordendasPorEnderecoTest()
        {
            var mockRequestJSON = new Mock<IRequestJSON>();
            mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync("{ addresses: [{ addressLine: { location: { coordinates : [100, 200] } } }]}");
            IGeocodificacaoApi geocodificacaoApi = new GeocodificacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig);

            var endereco = new EnderecoModel
            {
                Rua = "Rua",
                Numero = 100,
                Cidade = "Cidade",
                Estado = "Estado"
            };
            var coordendas = await geocodificacaoApi.CoordendasPorEndereco(endereco);

            Assert.AreEqual(coordendas.Latitude, 200.0);
            Assert.AreEqual(coordendas.Longitude, 100.0);
        }
        public async Task CoordendasPorEnderecoSemEnderecoTest()
        {
            var mockRequestJSON = new Mock<IRequestJSON>();
            mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(null);
            IGeocodificacaoApi geocodificacaoApi = new GeocodificacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig);

            var endereco = new EnderecoModel
            {
                Rua = "Rua",
                Estado = "Estado"
            };
            try
            {
                var coordendas = await geocodificacaoApi.CoordendasPorEndereco(endereco);
            }
            catch (ArgumentException ex)
            {
                Assert.AreEqual(ex.Message, "Endereço inválido");
                throw ex;
            }
        }
        public async Task CoordendasPorEnderecoNaoEncontradoTest()
        {
            var mockRequestJSON = new Mock<IRequestJSON>();
            mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(null);
            IGeocodificacaoApi geocodificacaoApi = new GeocodificacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig);

            var endereco = new EnderecoModel
            {
                Rua = "Rua",
                Numero = 100,
                Cidade = "Cidade",
                Estado = "Estado"
            };
            try
            {
                var coordendas = await geocodificacaoApi.CoordendasPorEndereco(endereco);
            }
            catch(CoordenadasNaoEcontradasException ex)
            {
                Assert.AreEqual(ex.Message, "Endereços não encontrados, rua: 'Rua', numero: '100', cidade: 'Cidade', estado: 'Estado'");
                throw ex;
            }          
        }
        public async Task CoordendasPorEnderecoJSONInvalidoTest()
        {
            var mockRequestJSON = new Mock<IRequestJSON>();
            mockRequestJSON.Setup(t => t.GetJSON(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync("{ addresses: { addressLine: { location: { coordinates : [100, 200] } } }}");
            IGeocodificacaoApi geocodificacaoApi = new GeocodificacaoApiV0(mapLinkSignature, mockRequestJSON.Object, apiConfig);

            var endereco = new EnderecoModel
            {
                Rua = "Rua",
                Numero = 100,
                Cidade = "Cidade",
                Estado = "Estado"
            };
            try
            {
                var coordendas = await geocodificacaoApi.CoordendasPorEndereco(endereco);
            }
            catch (ArgumentException ex)
            {
                Assert.AreEqual(ex.Message, "Erro ao realizar a busca de um dos endereços");
                throw ex;
            }
        }