package migration

import "testing"

func TestParseCutoverMXHostsExplicit(t *testing.T) {
	got := ParseCutoverMXHosts(" Mail.Acme.Com , mx2.acme.com ", "", "")
	want := []string{"mail.acme.com", "mx2.acme.com"}
	if len(got) != len(want) {
		t.Fatalf("got %v want %v", got, want)
	}
	for i := range want {
		if got[i] != want[i] {
			t.Fatalf("got %v want %v", got, want)
		}
	}
}

func TestParseCutoverMXHostsFallbackPlatform(t *testing.T) {
	got := ParseCutoverMXHosts("", "Ultisuite.Fr", "")
	if len(got) != 1 || got[0] != "mail.ultisuite.fr" {
		t.Fatalf("got %v", got)
	}
}

func TestParseCutoverMXHostsFallbackStalwart(t *testing.T) {
	got := ParseCutoverMXHosts("", "", "mail.hosted.example.com")
	if len(got) != 1 || got[0] != "mail.hosted.example.com" {
		t.Fatalf("got %v", got)
	}
}

func TestParseCutoverMXHostsSkipsBareStalwartHost(t *testing.T) {
	got := ParseCutoverMXHosts("", "acme.fr", "stalwart")
	if len(got) != 1 || got[0] != "mail.acme.fr" {
		t.Fatalf("got %v", got)
	}
}
