diff --git a/irc.go b/irc.go index 2efc26f..b8e116e 100644 --- a/irc.go +++ b/irc.go @@ -388,3 +388,17 @@ func IRC(nick, user string) *Connection { irc.setupCallbacks() return irc } + +// Returns true if all values in struct make +// somewhat sense. +func (irc *Connection) hasValidValues() bool { + if 0 == len(irc.nick) { + return false + } + + if 0 == len(irc.Version) { + return false + } + + return true +} diff --git a/irc_test.go b/irc_test.go index 42e090f..2faed38 100644 --- a/irc_test.go +++ b/irc_test.go @@ -157,8 +157,43 @@ func TestIRCemptyNick(t *testing.T) { func TestIRCemptyUser(t *testing.T) { irccon := IRC("go-eventirc", "") - irccon = nil if nil != irccon { t.Error("empty user didn't result in error") } } + + +func TestHasValidValues0(t *testing.T) { + irccon := IRC("go-eventirc", "go-eventirc") + if nil == irccon { + t.Error("creating IRC struct failed") + } + + if false == irccon.hasValidValues() { + t.Error("valid struct not detected as such") + } +} + +func TestHasValidValues1(t *testing.T) { + irccon := IRC("go-eventirc", "go-eventirc") + if nil == irccon { + t.Error("creating IRC struct failed") + } + + irccon.Version = "" + if irccon.hasValidValues() { + t.Error("empty 'Version' not detected") + } +} + +func TestHasValidValues2(t *testing.T) { + irccon := IRC("go-eventirc", "go-eventirc") + if nil == irccon { + t.Error("creating IRC struct failed") + } + + irccon.nick = "" + if irccon.hasValidValues() { + t.Error("empty 'nick' not detected") + } +}