package regras

import (
	"strings"
	"testing"
)

func TestCorrigirLatin1SanitizaControle(t *testing.T) {
	in := "texto\x00com controle"
	out := CorrigirLatin1(in)
	if strings.Contains(out, "\x00") {
		t.Fatal("controle removido")
	}
}

func TestCorrigirLatin1PreservaUTF8(t *testing.T) {
	in := "Apartamento 2 quartos sendo 1 suíte à venda no Condomínio, com 55M²"
	out := CorrigirLatin1(in)
	if out != in {
		t.Fatalf("UTF-8 válido deve ser preservado: got %q", out)
	}
}

func TestCorrigirLatin1ReparaMojibake(t *testing.T) {
	in := "su\u00c3\u00adte"
	out := CorrigirLatin1(in)
	if out != "suíte" {
		t.Fatalf("mojibake reparado: got %q", out)
	}
}

func TestPrimeiroTelefoneJSONVazio(t *testing.T) {
	if got := PrimeiroTelefoneJSON(`[""]`); got != "" {
		t.Fatalf("esperado vazio, got %q", got)
	}
	if got := PrimeiroTelefoneJSON(","); got != "" {
		t.Fatalf("esperado vazio, got %q", got)
	}
	if got := TelefoneContato(`["0","0","0"]`, "", ""); got != "" {
		t.Fatalf("array de zeros = vazio, got %q", got)
	}
}

func TestTrataCampoVazioOLX(t *testing.T) {
	if TrataCampoVazioOLX("") != "1" {
		t.Fatal("vazio = 1")
	}
	if TrataCampoVazioOLX("3") != "3" {
		t.Fatal("valor mantido")
	}
}
