예제 #1
0
        public void TestJoinPart()
        {
            var tracker         = new ChannelTracker();
            var someoneClientId = new ClientId("Someone", "user", "example.com");

            var message = new Message("JOIN", new[] { "#Test" });

            message.Prefix.ClientId = someoneClientId;

            tracker.UpdateFromMessage(message);
            Assert.True(tracker.ContainsKey("#test"));

            var channel = tracker["#test"];

            Assert.True(channel.ContainsKey("someone"));

            var user = channel["someone"];

            Assert.Equal("someone", user.ClientId.NicknameLower);

            message = new Message("PART", new[] { "#Test" });
            message.Prefix.ClientId = someoneClientId;

            tracker.UpdateFromMessage(message);
            Assert.False(channel.ContainsKey("someone"));
        }
예제 #2
0
        public void TestMissingPart()
        {
            var tracker         = new ChannelTracker();
            var someoneClientId = new ClientId("Someone", "user", "example.com");

            var message = new Message("PART", new[] { "#Test" });

            message.Prefix.ClientId = someoneClientId;

            tracker.UpdateFromMessage(message);
            Assert.False(tracker["#test"].ContainsKey("someone"));
        }
예제 #3
0
        public void TestExtraJoin()
        {
            var tracker         = new ChannelTracker();
            var someoneClientId = new ClientId("Someone", "user", "example.com");

            var message = new Message("JOIN", new[] { "#Test" });

            message.Prefix.ClientId = someoneClientId;

            tracker.UpdateFromMessage(message);
            tracker.UpdateFromMessage(message);  // double

            Assert.True(tracker["#test"].ContainsKey("someone"));
        }
예제 #4
0
        public void TestNameReply()
        {
            var tracker = new ChannelTracker();
            var message = new Message(
                NumericalReplyCodes.RPL_NAMREPLY,
                new[] { "someone", "=", "#test" },
                "@chanOwner +someoneElse bill"
                );

            tracker.UpdateFromMessage(message);

            Assert.True(tracker.ContainsKey("#test"));
            Assert.True(tracker["#test"].ContainsKey("chanowner"));
            Assert.True(tracker["#test"].ContainsKey("someoneelse"));
            Assert.True(tracker["#test"].ContainsKey("bill"));
        }