예제 #1
0
        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);
        }
예제 #2
0
        /// <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;
            }
        }
예제 #3
0
        /// <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());
            }
        }
예제 #4
0
 public ProtocolHandlerTestWrapper(IDeviceHandler deviceHandler, ConfirmationFactory confirmationFactory, ReplyFactory replyFactory, OrderFactory orderFactory, CommandTranslator commandTranslator, ResponseAwaiterDispatch awaiterDispatch)
     : base(deviceHandler, confirmationFactory, replyFactory, orderFactory, commandTranslator, awaiterDispatch)
 {
 }