private void Setup() { var partFactory = PartFactoryTestObjects.GetAlwaysValidPartFactory(); CommandFactory = CommandsTestObjects.GetProperAlwaysValidCommandFactory(); var idGenerator = new IdGenerator(4); var dataPackFactory = new ReflectionBasedDataPackFactory(); var orderFactory = new OrderFactory(idGenerator, dataPackFactory); var replyFactory = new ReplyFactory(idGenerator); var confirmationFactory = new ConfirmationFactory(); Mock <IDataStreamSplitter> splitter = new Mock <IDataStreamSplitter>(); Mock <ICommunicationDeviceAsync> comDevice = new Mock <ICommunicationDeviceAsync>(); var translator = new CommandTranslator(new OrderCommandTranslator(partFactory, CommandFactory, orderFactory), new ReplyCommandTranslator(partFactory, CommandFactory, replyFactory), new ConfirmationCommandTranslator(partFactory, CommandFactory, confirmationFactory), new ErrorCommandTranslator()); Translator = translator; Mock <IDeviceHandler> handler = new Mock <IDeviceHandler>(); handler.Setup(h => h.SendAsync(It.IsAny <ICommand>())).ReturnsAsync(true); DeviceMoq = handler; ResponseAwaiterDispatch = ResponseAwaiterDispatchTestObjects.GetProperResponseAwaiterDispatch(); ProtocolHandler = new ProtocolHandlerTestWrapper(handler.Object, confirmationFactory, replyFactory, orderFactory, translator, ResponseAwaiterDispatch); }
/// <summary> /// UI界面显示接收消息 /// </summary> private void ShowReceiveMsg(WXMsg msg) { //if (_meUser == null || _friendUser == null) //{ // return; //} var m = ReplyFactory.Create(msg).MakeContent(msg); try { string str = @"<script type=""text/javascript"">window.location.hash = ""#ok"";</script> <div class=""chat_content_group buddy""> <p style=""text-align:center;color:#A4B4BB;font-size:9px;"">" + msg.Time + @"</p> <img class=""chat_content_avatar"" src="" + _friend_base64 + @"" width=""40px"" height=""40px""> <p class=""chat_nick"">" + _friendUser.ShowName + @"</p> <p class=""chat_content"">" + msg.Msg + @"</p> </div><a id='ok'></a>"; if (_totalHtml == "") { _totalHtml = _baseHtml; } msg.Readed = true; webKitBrowser1.DocumentText = _totalHtml = _totalHtml.Replace("<a id='ok'></a>", "") + str; ((Action) delegate() { var b = WxOperateLogDal.AddWxchatcontent_sedMsg(_meUser.uin, _friendUser.ShowName, _friendUser.ShowName, _meUser.ShowName, msg.Msg, msg.Time.ToString()); }).BeginInvoke(null, null); } catch { return; } }
/// <summary> /// 接收消息 /// </summary> /// <param name="msg"></param> void wt_OnRevice(WXMsg msg) { try { WxContact c = new WxContact(msg.Uin); string log = "type:" + msg.Type.ToString() + "来源:" + msg.From + "[ " + c.GetNickName(msg.From) + "],发至:" + msg.To + " [" + c.GetNickName(msg.To) + "]" + msg.Msg; WriteLog(log); var m = ReplyFactory.Create(msg).MakeContent(msg); var sendContext = m.context; if (!string.IsNullOrEmpty(sendContext)) { WXService s = new WXService(); s.Sid = msg.Sid; s.Uin = msg.Uin; s.SendMsg(sendContext, msg.To, msg.From, m.type, msg.Uin, msg.Sid); } //string afTitle = "[ " + c.GetNickName(msg.From) + "]回复[" + c.GetNickName(msg.To) + "]" + "一条消息"; //string afContent = msg.Msg; //YUNkefu.AlertForm.ShowWay showWay = YUNkefu.AlertForm.ShowWay.UpDown; //int afShowInTime, afShowTime, afShowOutTime; //int afWidth, afHeigth; //int.TryParse("100", out afShowInTime); //int.TryParse("500", out afShowTime); //int.TryParse("100", out afShowOutTime); //int.TryParse("250", out afWidth); //int.TryParse("120", out afHeigth); //af = new YUNkefu.AlertForm(); //af.Show(afContent, afTitle, showWay, afWidth, afHeigth, afShowInTime, afShowTime, afShowOutTime); WriteLog("【demo】" + log); } catch (Exception ex) { WriteLog("【错误】" + ex.ToString()); Tools.WriteLog(ex.ToString()); } }
public ProtocolHandlerTestWrapper(IDeviceHandler deviceHandler, ConfirmationFactory confirmationFactory, ReplyFactory replyFactory, OrderFactory orderFactory, CommandTranslator commandTranslator, ResponseAwaiterDispatch awaiterDispatch) : base(deviceHandler, confirmationFactory, replyFactory, orderFactory, commandTranslator, awaiterDispatch) { }