diff --git a/test/utils_test.exs b/test/utils_test.exs index cfd7cfb..6af5c25 100644 --- a/test/utils_test.exs +++ b/test/utils_test.exs @@ -1,16 +1,35 @@ defmodule ExIrc.UtilsTest do use ExUnit.Case + + use Irc.Commands + alias ExIrc.Utils, as: Utils alias ExIrc.Client.IrcMessage, as: IrcMessage + alias ExIrc.Client.ClientState, as: ClientState test "Given a local date/time as a tuple, can retrieve get the CTCP formatted time" do - local_time = {{2013,12,6},{14,5,00}} + local_time = {{2013,12,6},{14,5,00}} # Mimics output of :calendar.local_time() assert Utils.ctcp_time(local_time) == 'Fri Dec 06 14:05:00 2013' end test "Can parse an IRC message" do - message = ':irc.example.org 005 nick PREFIX=(ov)@+ CHANTYPES=#&' - assert IrcMessage[server: 'irc.example.org', cmd: '005', args: ['nick', 'PREFIX=(ov)@+', 'CHANTYPES=#&']] = Utils.parse(message) + message = ':irc.example.org 005 nick NETWORK=Freenode PREFIX=(ov)@+ CHANTYPES=#&' + assert IrcMessage[ + server: 'irc.example.org', + cmd: @rpl_isupport, + args: ['nick', 'NETWORK=Freenode', 'PREFIX=(ov)@+', 'CHANTYPES=#&'] + ] = Utils.parse(message) + end + + test "Can parse RPL_ISUPPORT commands" do + message = ':irc.example.org 005 nick NETWORK=Freenode PREFIX=(ov)@+ CHANTYPES=#&' + parsed = Utils.parse(message) + state = ClientState.new() + assert ClientState[ + channel_prefixes: [?#, ?&], + user_prefixes: [{?o, ?@}, {?v, ?+}], + network: 'Freenode' + ] = Utils.isup(parsed.args, state) end end