public void should_forward_MessageHandled_to_active_replayers() { var messageReplayerMock = new Mock <IMessageReplayer>(); MockContainer.GetMock <IMessageReplayerRepository>().Setup(x => x.GetActiveMessageReplayer(_targetPeerId)).Returns(messageReplayerMock.Object); Handler.Context = MessageContext.CreateOverride(_targetPeerId, null); var messageHandled = new MessageHandled(MessageId.NextId()); Handler.Handle(messageHandled); messageReplayerMock.Verify(x => x.Handle(messageHandled)); }
public void should_publish_a_MessageHandled_event_after_a_persistent_message_is_processed_by_the_bus() { Transport.Start(); using (MessageId.PauseIdGeneration()) { var command = new FakeCommand(123).ToTransportMessage(); InnerTransport.RaiseMessageReceived(new ReplayPhaseEnded(StartMessageReplayCommand.ReplayId).ToTransportMessage()); InnerTransport.RaiseMessageReceived(command); Transport.AckMessage(command); var messageHandledMessage = new MessageHandled(command.Id).ToTransportMessage(Self); InnerTransport.ExpectExactly(new TransportMessageSent(messageHandledMessage, PersistencePeer)); } }
}//OnFriendRemove() //GLOBALIZED /// <summary> /// Called when user sends bot a ItemRemovedMsg /// </summary> /// <param name="ItemRemovedMsg">ItemRemovedMsg sent</param> /// <param name="type">type of ItemRemovedMsg</param> public override void OnMessage(string message, EChatEntryType type) { string BackupMessage = message; if (!message.StartsWith(".") && !message.StartsWith("enter")) { message = message.ToLower();//lowercase ItemRemovedMsg }//if (!ItemRemovedMsg.StartsWith(".") && !ItemRemovedMsg.StartsWith("enter")) string MessageHandled;//the sConversionResult of dealing with the ItemRemovedMsg #region AdminCommands // ADMIN commands if (IsAdmin) { MessageHandled = clsFunctions.DealWithAdminCommand(this.Bot, OtherSID, message);//Deal with the ItemRemovedMsg, or receive something back if the bot needs specific things to do. if (MessageHandled == String.Empty) { return;//message was handled like it should of been, so stop code. }//if (MessageHandled == String.Empty) if (MessageHandled == clsFunctions.AdvertiseCMD) { if (Bot.AdvertiseHandler.bStarted) { Bot.SteamFriends.SendChatMessage(OtherSID, type, "Stopping Advertisements..."); Bot.log.Success("Stopping Advertisements."); Bot.AdvertiseHandler.Stop(); } else { Bot.SteamFriends.SendChatMessage(OtherSID, type, "Starting Advertisements."); Bot.log.Success("Starting Advertisements."); Bot.AdvertiseHandler.Start(); } return; } else if (MessageHandled == clsFunctions.MetalCountCMD) { Bot.informHandler.Start(); //count bots inventory Bot.SteamFriends.SendChatMessage(OtherSID, type, Bot.informHandler.AdminStatsMessage()); //Send the results return; //stop code. }// else if (MessageHandled == clsFunctions.MetalCountCMD) }//if (IsAdmin) #endregion AdminCommands #region Responces //since admin commands were not handled or user is not an admin, check regular commands. MessageHandled = clsFunctions.DealWithCommand(Bot, OtherSID, message);//Get command results if (MessageHandled == String.Empty) { return;//message was handled in clsFunctions, so we can stop the code. }//if (MessageHandled == String.Empty) else if (MessageHandled == clsFunctions.UserClearCMD) { Bot.SteamFriends.SendChatMessage(OtherSID, type, "You don't have any items reserved..."); return; }//else if (MessageHandled == clsFunctions.UserClearCMD) else if (MessageHandled == clsFunctions.UserDonateCMD) { ChooseDonate = true; //user is donating return; //stop code }//else if (MessageHandled == clsFunctions.UserDonateCMD) else if (MessageHandled.StartsWith(Bot.BackpackUrl) && MessageHandled.Length > Bot.BackpackUrl.Length) { Bot.SteamFriends.SendChatMessage(OtherSID, type, "You don't have to reserve items! Just invite me to trade and add keys or metal to get started."); return; }//else if (MessageHandled.StartsWith(Bot.BackpackUrl) && MessageHandled.Length > Bot.BackpackUrl.Length) else if (MessageHandled == clsFunctions.UserStatusCMD) { Bot.informHandler.Start(); //Start counting inventory Bot.SteamFriends.SendChatMessage(OtherSID, type, Bot.informHandler.UserStatsMessage()); //Send the stats ItemRemovedMsg for users. return; }//else if (MessageHandled == clsFunctions.UserStatusCMD) else { if (MessageHandled != String.Empty) { string MsgToSend = clsFunctions.DealWithGenericMessage(BackupMessage, OtherSID, Bot);//See if there is a response to the general ItemRemovedMsg //Bot.SteamFriends.SendChatMessage(OtherSID, type, MsgToSend);//Send ItemRemovedMsg response if (MsgToSend == "I'm sorry. I'm a nub bot and haven't been taught to respond to that =C") { try { string BotResponceMessage = chatterBotsession.Think(BackupMessage); int icount = 0; if (BotResponceMessage.Contains("<a href=")) { BotResponceMessage = Regex.Replace(BotResponceMessage, @"<a\b[^>]+>([^<]*(?:(?!</a)<[^<]*)*)</a>", "$1"); } if (BotResponceMessage.Contains("click here!")) { BotResponceMessage = "Uhhh what?"; } if (BotResponceMessage.Contains("http://tinyurl.com/comskybot")) { BotResponceMessage = "By being yourself!"; } if (BotResponceMessage.Contains("Please click here to help protect")) { BotResponceMessage = "Bye bye!"; } if (BotResponceMessage.Contains("<br>")) { string[] splitVars = { "<br>" }; string[] newBotMsg = BotResponceMessage.Split(splitVars, StringSplitOptions.None); BotResponceMessage = newBotMsg[0]; } Bot.SteamFriends.SendChatMessage(OtherSID, type, BotResponceMessage); } catch (Exception ex) { Bot.SteamFriends.SendChatMessage(OtherSID, type, "What...?"); } //Bot.log.Success("Send bot response message of: " + BotResponceMessage); } //if (MsgToSend == "I'm sorry. I'm a nub bot and haven't been taught to respond to that =C") } //if (MessageHandled != String.Empty) } //else #endregion Responces }//OnMessage()