public void Process_FormatReturnsNoMessage_DoesNotSendMessage()
        {
            var mockMF = new Mock<IMessageFormatter>();
            var mockMD = new Mock<IMessageDelivery>();

            var sub = new EmailEventHandler(mockMF.Object, mockMD.Object);

            var mockAcct = new MockUserAccount();
            var mockEvt = new Mock<UserAccountEvent>();
            mockEvt.Object.Account = mockAcct.Object;
            sub.Process(mockEvt.Object);

            mockMD.Verify(x => x.Send(It.IsAny<Message>()), Times.Never());
        }
        public void Process_FormatReturnsNoMessage_DoesNotSendMessage()
        {
            var mockMF = new Mock <IMessageFormatter>();
            var mockMD = new Mock <IMessageDelivery>();

            var sub = new EmailEventHandler(mockMF.Object, mockMD.Object);

            var mockAcct = new MockUserAccount();
            var mockEvt  = new Mock <UserAccountEvent>();

            mockEvt.Object.Account = mockAcct.Object;
            sub.Process(mockEvt.Object);

            mockMD.Verify(x => x.Send(It.IsAny <Message>()), Times.Never());
        }
        public void Process_FormatReturnsMessage_SendsMessage()
        {
            var msg = new Message();
            var mockMF = new Mock<IMessageFormatter>();
            var mockMD = new Mock<IMessageDelivery>();
            mockMF.Setup(x => x.Format(It.IsAny<UserAccountEvent>())).Returns(msg);

            var sub = new EmailEventHandler(mockMF.Object, mockMD.Object);

            var mockAcct = new MockUserAccount();
            var mockEvt = new Mock<UserAccountEvent>();
            mockEvt.Object.Account = mockAcct.Object;
            sub.Process(mockEvt.Object);

            mockMD.Verify(x => x.Send(msg));
        }
        public void Process_ExplicitEmailParam_UsesExplicitEmail()
        {
            var msg = new Message();
            var mockMF = new Mock<IMessageFormatter>();
            var mockMD = new Mock<IMessageDelivery>();
            mockMF.Setup(x => x.Format(It.IsAny<UserAccountEvent>())).Returns(msg);

            var sub = new EmailEventHandler(mockMF.Object, mockMD.Object);

            var mockAcct = new MockUserAccount();
            mockAcct.Object.Email = "foo";
            var mockEvt = new Mock<UserAccountEvent>();
            mockEvt.Object.Account = mockAcct.Object;
            sub.Process(mockEvt.Object, "bar");

            Assert.AreEqual("bar", msg.To);
        }
        public void Process_FormatReturnsMessage_SendsMessage()
        {
            var msg    = new Message();
            var mockMF = new Mock <IMessageFormatter>();
            var mockMD = new Mock <IMessageDelivery>();

            mockMF.Setup(x => x.Format(It.IsAny <UserAccountEvent>())).Returns(msg);

            var sub = new EmailEventHandler(mockMF.Object, mockMD.Object);

            var mockAcct = new MockUserAccount();
            var mockEvt  = new Mock <UserAccountEvent>();

            mockEvt.Object.Account = mockAcct.Object;
            sub.Process(mockEvt.Object);

            mockMD.Verify(x => x.Send(msg));
        }
        public void Process_ExplicitEmailParam_UsesExplicitEmail()
        {
            var msg    = new Message();
            var mockMF = new Mock <IMessageFormatter>();
            var mockMD = new Mock <IMessageDelivery>();

            mockMF.Setup(x => x.Format(It.IsAny <UserAccountEvent>())).Returns(msg);

            var sub = new EmailEventHandler(mockMF.Object, mockMD.Object);

            var mockAcct = new MockUserAccount();

            mockAcct.Object.Email = "foo";
            var mockEvt = new Mock <UserAccountEvent>();

            mockEvt.Object.Account = mockAcct.Object;
            sub.Process(mockEvt.Object, "bar");

            Assert.AreEqual("bar", msg.To);
        }
Пример #7
0
        public async Task SendTest()
        {
            // Arrange
            var smtpClientMock = new Mock <SmtpClient>();

            smtpClientMock.Setup(m => m.DisconnectAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(true));
            smtpClientMock.Setup(m => m.SendAsync(It.IsAny <MimeMessage>(), It.IsAny <CancellationToken>(), It.IsAny <ITransferProgress>())).Returns(Task.FromResult(true));

            var mailboxTestTo   = new EmailAddress("TestRecipient", "*****@*****.**");
            var mailboxTestFrom = new EmailAddress("TestSender", "*****@*****.**");
            var subjectTest     = "Test Subject";
            var contentTest     = "Test Content";

            var emailMessage = new EmailEvent(mailboxTestFrom, mailboxTestTo, subjectTest, contentTest, true);
            var emailService = new EmailEventHandler(smtpClientMock.Object);
            // Act
            await emailService.ConsumeAsync(emailMessage);

            // Assert
            smtpClientMock.Verify(m => m.DisconnectAsync(It.Is <bool>(p => true), It.IsAny <CancellationToken>()), Times.Once);
            smtpClientMock.Verify(m => m.SendAsync(It.Is <MimeMessage>(p =>
                                                                       p.Subject == subjectTest && p.HtmlBody == contentTest && p.To[0].Name == mailboxTestTo.Name && p.From[0].Name == mailboxTestFrom.Name),
                                                   It.IsAny <CancellationToken>(), It.IsAny <ITransferProgress>()), Times.Once);
        }
        /// <summary>
        /// Initialize SFDC Adapter
        /// </summary>
        /// <param name="agentDetails">Agent Details</param>
        /// <param name="tServer">T-Server Protocol</param>
        /// <param name="configProtocol">Config Server Protocol</param>
        private void InitializeSFDCIntegration(ISFDCListener subscirber, IAgentDetails agentDetails, IConfService confService)
        {
            try
            {
                _logger.Info("InitializeSFDCIntegration : Initializing Common Properties for SFDC Popup");

                Settings.GeneralConfigs = ReadConfiguration.GetInstance().ReadGeneralConfigurations(agentDetails.MyApplication, agentDetails.AgentGroups, agentDetails.Person);

                if (Settings.GeneralConfigs != null)
                {
                    Settings.SFDCOptions = Pointel.Salesforce.Adapter.Configurations.ReadProperties.GetInstance().GetSFDCGeneralProperties(Settings.GeneralConfigs);
                    if (Settings.SFDCOptions != null)
                    {
                        if (Settings.SFDCOptions.EnableSFDCIntegration)
                        {
                            // Initializing Common Properties in Settings
                            Settings.Initialize(subscirber, agentDetails, confService);

                            //Start SFDC Server
                            if (Settings.SFDCOptions.SFDCPopupChannels != null && Settings.SFDCOptions.SFDCConnectPort != 0)
                            {
                                SFDCHttpServer.GetInstance().StartListener(Environment.CurrentDirectory + @"\Files", Settings.SFDCOptions.SFDCConnectPort);
                                if (Settings.IsVoiceEnabled)
                                {
                                    _voicePopup = new VoiceEventHandler();
                                }
                                if (Settings.IsChatEnabled)
                                {
                                    _chatPopup = new ChatEventHandler();
                                }
                                if (Settings.IsEmailEnabled)
                                {
                                    _emailPopup = new EmailEventHandler();
                                }
                                //PopupBrowser
                                if (Settings.SFDCOptions.SFDCPopupContainer != null)
                                {
                                    if (Settings.SFDCOptions.SFDCPopupContainer.Equals("browser"))
                                    {
                                        if (Settings.SFDCOptions.SFDCLoginURL != null)
                                        {
                                            this._logger.Info("Lauching SFDC URL : " + PopupURL(Settings.SFDCOptions.SFDCLoginURL, Settings.SFDCOptions.SFDCPopupBrowserName,
                                                                                                Settings.SFDCOptions.EnableAddressbar, Settings.SFDCOptions.EnableStatusbar));
                                        }
                                        else
                                        {
                                            this._logger.Info("SFDC Login URL is null. ");
                                        }
                                    }
                                    else
                                    {
                                        Settings.SFDCListener.ReceiveSFDCWindow(new SFDCPopupWindow(Settings.SFDCOptions.SFDCLoginURL));
                                    }
                                }
                                else
                                {
                                    this._logger.Info("SFDC Popup Container is null. ");
                                }
                                if (!Settings.SFDCListener.IsSFDCConnected && Settings.SFDCOptions.AlertSFDCConnectionStatus)
                                {
                                    Settings.SFDCListener.SFDCConnectionStatus(LogMode.Error, Settings.SFDCOptions.SFDCConnectionFailureMessage);
                                }
                            }
                            else
                            {
                                this._logger.Info("SFDC Popup Aborted, because either popup channel or port number is empty ");
                                this._logger.Info("SFDC Popup Channels : " + Settings.SFDCOptions.SFDCPopupChannels);
                                this._logger.Info("SFDC Port Number : " + Settings.SFDCOptions.SFDCConnectPort);
                            }
                        }
                        else
                        {
                            _logger.Info("InitializeSFDCIntegration : SFDC Integration Disabled");
                        }
                    }
                    else
                    {
                        _logger.Info("InitializeSFDCIntegration : SFDC General Config object is null...");
                    }
                }
                else
                {
                    _logger.Info("InitializeSFDCIntegration : SFDC popup can not be started because SFDC General Configuration has is found.");
                }
            }
            catch (Exception generalException)
            {
                _logger.Error("InitializeSFDCIntegration : Error Occurred while start SFDC Popup " + generalException.ToString());
            }
        }
 public void ctor_NullFormatter_Throws()
 {
     var mockMF = new Mock <IMessageFormatter>();
     var mockMD = new Mock <IMessageDelivery>();
     var sub    = new EmailEventHandler(null, mockMD.Object);
 }
 public void ctor_NullDelivery_Throws()
 {
     var mockMF = new Mock<IMessageFormatter>();
     var mockMD = new Mock<IMessageDelivery>();
     var sub = new EmailEventHandler(mockMF.Object, null);
 }
Пример #11
0
        private void OnEmailOpen(object var)
        {
            string email = (string)var;

            EmailEventHandler?.Invoke(email);
        }