defmodule Cepis.ServerCase do @moduledoc false use ExUnit.CaseTemplate using do quote do import Cepis.ServerCase alias Cepis.FakeServer end end setup do server = Cepis.FakeServer.start() on_exit(fn -> Cepis.FakeServer.stop(server) end) client = Cepis.Client.new( base_url: server.url, timeout: 5_000, backoff_base: 1, backoff_max: 10 ) %{server: server, client: client} end @address %{ "cep" => "01001000", "logradouro" => "Praça da Sé", "complemento" => "lado ímpar", "unidade" => "", "bairro" => "Sé", "localidade" => "São Paulo", "uf" => "SP", "estado" => "São Paulo", "regiao" => "Sudeste", "ibge" => "3550308", "gia" => "1004", "ddd" => "11", "siafi" => "7107" } @csv_header "cep,logradouro,complemento,unidade,bairro,localidade,uf,estado,regiao,ibge,gia,ddd,siafi" def address_fixture(extra \\ %{}), do: Map.merge(@address, extra) def json(term), do: IO.iodata_to_binary(:json.encode(term)) def csv(rows), do: Enum.join([@csv_header | rows], "\n") <> "\n" end