예제 #1
0
        public void CloneTest()
        {
            KickHandlerConfig config1 = new KickHandlerConfig();
            KickHandlerConfig clone   = config1.Clone();

            Assert.AreNotSame(config1, clone);
        }
예제 #2
0
        public void ValidateTest()
        {
            KickHandlerConfig config = new KickHandlerConfig();

            config.KickAction = null;
            Assert.Throws <ValidationException>(() => config.Validate());

            config.KickAction = delegate(KickHandlerArgs args)
            {
            };

            Assert.DoesNotThrow(() => config.Validate());
        }
예제 #3
0
        public void TestSetup()
        {
            this.ircConfig       = TestHelpers.GetTestIrcConfig();
            this.ircWriter       = new Mock <IIrcWriter>(MockBehavior.Strict);
            this.kickHandlerArgs = null;

            KickHandlerConfig kickHandlerConfig = new KickHandlerConfig
            {
                KickAction = this.KickHandler
            };

            this.uut = new KickHandler(kickHandlerConfig);
        }
예제 #4
0
        public void BotPerformsKickWithRespondToSelfEnabled()
        {
            KickHandlerConfig kickHandlerConfig = new KickHandlerConfig
            {
                KickAction = this.KickHandler,
                RespondToSelfBeingKicked    = false,
                RespondToSelfPerformingKick = true
            };

            this.uut = new KickHandler(kickHandlerConfig);

            this.DoKickSuccessTest(this.ircConfig.Nick, kickedUser, this.ircConfig.Channels[0], "Some Reason 13");
        }
예제 #5
0
        public void BotIsKickedWithRespondToSelfEnabled()
        {
            KickHandlerConfig kickHandlerConfig = new KickHandlerConfig
            {
                KickAction = this.KickHandler,
                RespondToSelfBeingKicked    = true,
                RespondToSelfPerformingKick = false
            };

            this.uut = new KickHandler(kickHandlerConfig);

            this.DoKickSuccessTest(moderator, this.ircConfig.Nick, this.ircConfig.Channels[0], "reason");
        }
예제 #6
0
        /// <summary>
        /// An initor that is used if we already know the config object.
        /// </summary>
        public void Init(PluginInitor initor, WelcomeBotConfig config)
        {
            if (this.isLoaded == false)
            {
                this.eventCreator = initor.ChaskisEventCreator;
                this.eventSender  = initor.ChaskisEventSender;

                if (config.EnableJoinMessages)
                {
                    JoinHandlerConfig joinHandlerConfig = new JoinHandlerConfig
                    {
                        JoinAction = this.JoinMessage
                    };
                    this.handlers.Add(new JoinHandler(joinHandlerConfig));
                }

                if (config.EnablePartMessages)
                {
                    PartHandlerConfig partHandlerConfig = new PartHandlerConfig
                    {
                        PartAction = PartMessage
                    };
                    this.handlers.Add(new PartHandler(partHandlerConfig));
                }

                if (config.EnableKickMessages)
                {
                    KickHandlerConfig kickHandlerConfig = new KickHandlerConfig
                    {
                        KickAction = KickMessage
                    };

                    this.handlers.Add(new KickHandler(kickHandlerConfig));
                }

                if (config.EnableJoinMessages && config.KarmaBotIntegration)
                {
                    ChaskisEventHandler karmaHandler = this.eventCreator.CreatePluginEventHandler(
                        "karmabot",
                        HandleKarmaQuery
                        );
                    this.handlers.Add(karmaHandler);
                }

                this.isLoaded = true;
            }
        }
예제 #7
0
        public void BotPerformsKickWithRespondToSelfDisabled()
        {
            KickHandlerConfig kickHandlerConfig = new KickHandlerConfig
            {
                KickAction = this.KickHandler,
                RespondToSelfBeingKicked    = false,
                RespondToSelfPerformingKick = false
            };

            this.uut = new KickHandler(kickHandlerConfig);

            string ircString = TestHelpers.ConstructKickString(
                this.ircConfig.Nick,
                moderator,
                this.ircConfig.Channels[0]
                );

            this.uut.HandleEvent(this.ConstructArgs(ircString));
            Assert.IsNull(this.kickHandlerArgs);
        }