namespace IRCSharp.Tests.Tokenization; public class Hostmask { [Test] public async Task FullHostmask() { var hostmask = new IRCTokens.Hostmask("nick!user@host"); await Assert.That(hostmask.NickName).IsEqualTo("nick"); await Assert.That(hostmask.UserName).IsEqualTo("user"); await Assert.That(hostmask.HostName).IsEqualTo("host"); } [Test] public async Task NoHostName() { var hostmask = new IRCTokens.Hostmask("nick!user"); await Assert.That(hostmask.NickName).IsEqualTo("nick"); await Assert.That(hostmask.UserName).IsEqualTo("user"); await Assert.That(hostmask.HostName).IsNull(); } [Test] public async Task NoUserName() { var hostmask = new IRCTokens.Hostmask("nick@host"); await Assert.That(hostmask.NickName).IsEqualTo("nick"); await Assert.That(hostmask.UserName).IsNull(); await Assert.That(hostmask.HostName).IsEqualTo("host"); } [Test] public async Task OnlyNickName() { var hostmask = new IRCTokens.Hostmask("nick"); await Assert.That(hostmask.NickName).IsEqualTo("nick"); await Assert.That(hostmask.UserName).IsNull(); await Assert.That(hostmask.HostName).IsNull(); } [Test] public async Task HostmaskFromLine() { var line = new Line(":nick!user@host PRIVMSG #channel hello"); var hostmask = new IRCTokens.Hostmask("nick!user@host"); await Assert.That(line.Hostmask.ToString()).IsEqualTo(hostmask.ToString()); await Assert.That(line.Hostmask.NickName).IsEqualTo("nick"); await Assert.That(line.Hostmask.UserName).IsEqualTo("user"); await Assert.That(line.Hostmask.HostName).IsEqualTo("host"); } [Test] public async Task EmptyHostmaskFromLine() { var line = new Line("PRIVMSG #channel hello"); await Assert.That(line.Hostmask.HostName).IsNull(); await Assert.That(line.Hostmask.UserName).IsNull(); await Assert.That(line.Hostmask.NickName).IsNull(); } }