package xmpp

import (
	"testing"
)

type params struct {
}

func TestParseAddr(t *testing.T) {
	tests := []struct {
		name  string
		input string
		want  string
	}{
		{name: "ipv4-no-port-1", input: "localhost", want: "localhost:5222"},
		{name: "ipv4-with-port-1", input: "localhost:5555", want: "localhost:5555"},
		{name: "ipv4-no-port-2", input: "127.0.0.1", want: "127.0.0.1:5222"},
		{name: "ipv4-with-port-2", input: "127.0.0.1:5555", want: "127.0.0.1:5555"},
		{name: "ipv6-no-port-1", input: "::1", want: "[::1]:5222"},
		{name: "ipv6-no-port-2", input: "[::1]", want: "[::1]:5222"},
		{name: "ipv6-no-port-3", input: "2001::7334", want: "[2001::7334]:5222"},
		{name: "ipv6-no-port-4", input: "2001:db8:85a3:0:0:8a2e:370:7334", want: "[2001:db8:85a3:0:0:8a2e:370:7334]:5222"},
		{name: "ipv6-with-port-1", input: "[::1]:5555", want: "[::1]:5555"},
	}
	for _, tc := range tests {
		t.Run(tc.name, func(st *testing.T) {
			addr := ensurePort(tc.input, 5222)

			if addr != tc.want {
				st.Errorf("incorrect Result: %v (!= %v)", addr, tc.want)
			}
		})
	}
}