// Copyright (c) 2020 Shivaram Lingamneni
// released under the MIT license

package irc

import (
	"testing"
)

func TestUserMaskSet(t *testing.T) {
	s := NewUserMaskSet()

	if s.Match("horse!~evan@tor-network.onion") {
		t.Errorf("empty set should not match anything")
	}

	s.Add("m:horse!*@*", "", "")
	if s.Match("horse!~evan@tor-network.onion") {
		t.Errorf("mute extbans should not Match(), only MatchMute()")
	}

	s.Add("*!~evan@*", "", "")
	if !s.Match("horse!~evan@tor-network.onion") {
		t.Errorf("expected Match() failed")
	}
	if s.Match("horse!~horse@tor-network.onion") {
		t.Errorf("unexpected Match() succeeded")
	}

	if !s.MatchMute("horse!~evan@tor-network.onion") {
		t.Errorf("expected MatchMute() failed")
	}
	if s.MatchMute("evan!~evan@tor-network.onion") {
		t.Errorf("unexpected MatchMute() succeeded")
	}
}