public void TestLiquification() { ActionHandlerConfig config = new ActionHandlerConfig { LineRegex = @"!{%nick%} {%channel%} {%user%}", LineAction = this.MessageFunction }; ActionHandler uut = new ActionHandler( config ); string expectedMessage = string.Format( "!{0} {1} {2}", this.ircConfig.Nick, this.ircConfig.Channels[0], remoteUser ); string ircString = this.GenerateMessage(remoteUser, this.ircConfig.Channels[0], expectedMessage); uut.HandleEvent(this.ConstructArgs(ircString)); Assert.IsNotNull(this.responseReceived); Assert.AreEqual(this.ircConfig.Channels[0], this.responseReceived.Channel); Assert.AreEqual(remoteUser, this.responseReceived.User); Assert.AreEqual(expectedMessage, this.responseReceived.Message); }
public void BlacklistTest() { ActionHandlerConfig config = new ActionHandlerConfig { LineRegex = @"!bot\s+help", LineAction = this.MessageFunction }; ActionHandler uut = new ActionHandler( config ); const string channel = "#blacklist"; const string expectedMessage = "!bot help"; List <string> blackList = new List <string>() { channel }; string ircString = this.GenerateMessage(remoteUser, channel, expectedMessage); HandlerArgs args = this.ConstructArgs(ircString); args.BlackListedChannels = blackList; uut.HandleEvent(args); Assert.IsNull(this.responseReceived); }
public void TestMisMatchedMessage() { ActionHandlerConfig config = new ActionHandlerConfig { LineRegex = @"!bot\s+help", LineAction = this.MessageFunction }; ActionHandler uut = new ActionHandler( config ); // Does not match pattern. No response expected. const string expectedMessage = "hello world!"; string ircString = this.GenerateMessage(remoteUser, this.ircConfig.Channels[0], expectedMessage); uut.HandleEvent(this.ConstructArgs(ircString)); Assert.IsNull(this.responseReceived); }
// ---------------- Test Helpers ---------------- private void DoGoodMessageTest(string user, string channel) { ActionHandlerConfig config = new ActionHandlerConfig { LineRegex = @"!bot\s+help", LineAction = this.MessageFunction }; ActionHandler uut = new ActionHandler( config ); const string expectedMessage = "!bot help"; string ircString = this.GenerateMessage(user, channel, expectedMessage); uut.HandleEvent(this.ConstructArgs(ircString)); Assert.AreEqual(channel, this.responseReceived.Channel); Assert.AreEqual(user, this.responseReceived.User); Assert.AreEqual(expectedMessage, this.responseReceived.Message); }
public void IgnoreMessageTest() { const string expectedMessage = "!bot help"; ActionHandlerConfig config = new ActionHandlerConfig { LineRegex = @".+", LineAction = this.MessageFunction, RespondToSelf = false }; ActionHandler uut = new ActionHandler( config ); // Instead of action string, create a message string. string ircString = TestHelpers.ConstructMessageString(remoteUser, this.ircConfig.Channels[0], expectedMessage); uut.HandleEvent(this.ConstructArgs(ircString)); Assert.IsNull(this.responseReceived); }
public void GoodConfigTest() { // Let's hope that the pseudo-random numbers are the same for all .NET versions, or this is // going to end pooly. Random random = new Random(1); IList <IIrcHandler> handlers = XmlLoader.LoadXmlBotConfig(goodConfig, this.testConfig, random); // Slot 0 should be a Message Handler { MessageHandler handler0 = handlers[0] as MessageHandler; Assert.IsNotNull(handler0); Assert.AreEqual(0, handler0.CoolDown); Assert.AreEqual("[Hh]ello {%nick%}", handler0.LineRegex); Assert.AreEqual(ResponseOptions.ChannelAndPms, handler0.ResponseOption); string ircString = TestHelpers.ConstructMessageString(remoteUser, this.testConfig.Channels[0], "Hello " + this.testConfig.Nick); // Expect a message to go out. { string expectedMessage = "Hello " + remoteUser + "!"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); handler0.HandleEvent(this.ConstructArgs(ircString)); this.mockIrcWriter.VerifyAll(); } { string expectedMessage = "Hello " + remoteUser + "!"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); handler0.HandleEvent(this.ConstructArgs(ircString)); this.mockIrcWriter.VerifyAll(); } { string expectedMessage = "Greetings " + remoteUser + "!"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); handler0.HandleEvent(this.ConstructArgs(ircString)); this.mockIrcWriter.VerifyAll(); } } // Slot 1 should be a Message Handler { MessageHandler handler1 = handlers[1] as MessageHandler; Assert.IsNotNull(handler1); Assert.AreEqual(1, handler1.CoolDown); Assert.AreEqual(@"[Mm]y\s+name\s+is\s+(?<name>\w+)", handler1.LineRegex); Assert.AreEqual(ResponseOptions.ChannelOnly, handler1.ResponseOption); // Expect a message to go out. string expectedMessage = "Hello Seth!"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); string ircString = TestHelpers.ConstructMessageString(remoteUser, this.testConfig.Channels[0], "My name is Seth"); handler1.HandleEvent(this.ConstructArgs(ircString)); } // Slot 2 should be a message Handler { MessageHandler handler2 = handlers[2] as MessageHandler; Assert.IsNotNull(handler2); Assert.AreEqual(0, handler2.CoolDown); Assert.AreEqual(@"^!{%nick%} {%channel%} {%user%}", handler2.LineRegex); Assert.AreEqual(ResponseOptions.ChannelAndPms, handler2.ResponseOption); // Expect a message to go out. string expectedMessage = string.Format( "Hello {0}, I am {1} on channel {2}!", remoteUser, this.testConfig.Nick, this.testConfig.Channels ); this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); string command = string.Format( "!{0} {1} {2}", this.testConfig.Nick, this.testConfig.Channels, remoteUser ); string ircString = TestHelpers.ConstructMessageString(remoteUser, this.testConfig.Channels[0], command); handler2.HandleEvent(this.ConstructArgs(ircString)); } // Slot 3 should be a message Handler { MessageHandler handler3 = handlers[3] as MessageHandler; Assert.IsNotNull(handler3); Assert.AreEqual(0, handler3.CoolDown); Assert.AreEqual(@"[Ww]hat is a(?<an>n)? (?<thing>\w+)", handler3.LineRegex); Assert.AreEqual(ResponseOptions.ChannelAndPms, handler3.ResponseOption); // Expect a message to go out. { string expectedMessage = "A mouse is a thing!"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); string command = "What is a mouse"; string ircString = TestHelpers.ConstructMessageString(remoteUser, this.testConfig.Channels[0], command); handler3.HandleEvent(this.ConstructArgs(ircString)); } { string expectedMessage = "An acorn is a thing!"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); string command = "What is an acorn"; string ircString = TestHelpers.ConstructMessageString(remoteUser, this.testConfig.Channels[0], command); handler3.HandleEvent(this.ConstructArgs(ircString)); } } // Slot 4 should be an action handler { ActionHandler handler4 = handlers[4] as ActionHandler; Assert.IsNotNull(handler4); Assert.AreEqual(0, handler4.CoolDown); Assert.AreEqual(@"^sighs$", handler4.LineRegex); Assert.AreEqual(ResponseOptions.ChannelAndPms, handler4.ResponseOption); // Expect a message to go out. { string expectedMessage = $"@{remoteUser} - What's wrong?"; this.mockIrcWriter.Setup(w => w.SendMessage(expectedMessage, this.testConfig.Channels[0])); string command = "sighs"; string ircString = TestHelpers.ConstructActionString(remoteUser, this.testConfig.Channels[0], command); handler4.HandleEvent(this.ConstructArgs(ircString)); } } }