public void Instantiate_Error_ReturnsFalse() { var newAlertArgs = new NewAlertEventArgs(); var result = newAlertArgs.Instantiate("Error Occurred"); Assert.IsFalse(result); }
public virtual void TryToGetAndSendNewSosOnlineAlerts(SirenOfShameSettings settings, DateTime now, Action <NewAlertEventArgs> invokeNewAlert) { if (!settings.GetSosOnlineContent()) { return; } bool weHaveAlreadyCheckedForAlertsToday = settings.LastCheckedForAlert != null && (now - settings.LastCheckedForAlert.Value).TotalHours < 24; if (weHaveAlreadyCheckedForAlertsToday) { return; } settings.LastCheckedForAlert = DateTime.Now; settings.Save(); var webClient = GetWebClient(); webClient.DownloadStringCompleted += (s, e) => { try { if (e.Error != null) { _log.Error("Error retrieving alert", e.Error); return; } NewAlertEventArgs args = new NewAlertEventArgs(); var successParsing = args.Instantiate(e.Result); if (successParsing) { if (settings.SoftwareInstanceId == null) { settings.SoftwareInstanceId = args.SoftwareInstanceId; settings.Save(); } if (settings.AlertClosed == null || args.AlertDate > settings.AlertClosed) { invokeNewAlert(args); } } } catch (Exception ex) { _log.Error("Error retrieving alert", ex); } }; string url = string.Format(SOS_URL + "/GetAlert?SirenEverConnected={0}&SoftwareInstanceId={1}&ServerType={2}&Version={3}", settings.SirenEverConnected, settings.SoftwareInstanceId, string.Join(",", settings.CiEntryPointSettings.Select(cip => cip.Name)), Application.ProductVersion ); webClient.DownloadStringAsync(new Uri(url)); }
public void Instantiate_ExtraArgs_Ignored() { var newAlertArgs = new NewAlertEventArgs(); var result = newAlertArgs.Instantiate("56\r\nhttp://www.google.com\r\nHello World\r\n633979872000000000\r\n\r\n\r\n\r\n\r\n"); Assert.IsTrue(result); Assert.AreEqual(56, newAlertArgs.SoftwareInstanceId); Assert.AreEqual("Hello World", newAlertArgs.Message); Assert.AreEqual("http://www.google.com", newAlertArgs.Url); }
public void Instantiate_ThreeArgsAllGood_ReturnsTrue() { var newAlertArgs = new NewAlertEventArgs(); var result = newAlertArgs.Instantiate(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsTrue(result); Assert.AreEqual(56, newAlertArgs.SoftwareInstanceId); Assert.AreEqual("Hello World", newAlertArgs.Message); Assert.AreEqual("http://www.google.com", newAlertArgs.Url); Assert.AreEqual(new DateTime(2010, 1, 2), newAlertArgs.AlertDate); }
private void RulesEngineNewAlert(object sender, NewAlertEventArgs args) { Invoke(() => { _showAlert = true; _alertUrl = args.Url; _panelAlert.Visible = true; _panelAlert.Height = 1; _labelAlert.Text = args.Message; _details.Location = new Point(_labelAlert.Width + 7, _labelAlert.Location.Y); _showAlertAnimation.Start(); _alertDate = args.AlertDate; }); }
public void TryToGetAndSendNewSosOnlineAlerts_HaveNeverCheckedForAlertsButSettingsSayNeverDownload_DoNotSendAlertToUi() { var sosOnlineService = new SosOnlineServiceFake(); var settings = new SirenOfShameSettingsFake(); settings.UpdateLocation = UpdateLocation.Never; settings.LastCheckedForAlert = null; NewAlertEventArgs newAlertEventArgs = null; sosOnlineService.TryToGetAndSendNewSosOnlineAlerts(settings, new DateTime(2010, 1, 1), alert => { newAlertEventArgs = alert; }); sosOnlineService.FakeWebClient.InvokeDownloadStringCompleted(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsNull(newAlertEventArgs); }
public void TryToGetAndSendNewSosOnlineAlerts_LastCheckedForNewAlertsOneSecondAgo_DoNotSendAlertToUi() { var sosOnlineService = new SosOnlineServiceFake(); var settings = new SirenOfShameSettingsFake(); var now = new DateTime(2010, 2, 2, 2, 2, 1); settings.LastCheckedForAlert = new DateTime(2010, 2, 2, 2, 2, 2); NewAlertEventArgs newAlertEventArgs = null; sosOnlineService.TryToGetAndSendNewSosOnlineAlerts(settings, now, alert => { newAlertEventArgs = alert; }); sosOnlineService.FakeWebClient.InvokeDownloadStringCompleted(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsNull(newAlertEventArgs); }
public void TryToGetAndSendNewSosOnlineAlerts_HaveNeverCheckedForAlerts_SendAlertToUi() { var sosOnlineService = new SosOnlineServiceFake(); var settings = new SirenOfShameSettingsFake(); settings.LastCheckedForAlert = null; NewAlertEventArgs newAlertEventArgs = null; sosOnlineService.TryToGetAndSendNewSosOnlineAlerts(settings, new DateTime(2010, 1, 1), alert => { newAlertEventArgs = alert; }); sosOnlineService.FakeWebClient.InvokeDownloadStringCompleted(@"56 http://www.google.com Hello World 633979872000000000"); Assert.IsNotNull(newAlertEventArgs, "Expected WebClient.DownloadStringAsync to be called, but it never was"); Assert.AreEqual("Hello World", newAlertEventArgs.Message); Assert.AreEqual("http://www.google.com", newAlertEventArgs.Url); Assert.AreEqual(new DateTime(2010, 1, 2), newAlertEventArgs.AlertDate); }
void Unit_NewAlert(object sender, NewAlertEventArgs e) { this.HandleInvoke(() => { var alert = e.Alert as IFileAlert; if (alert != null) { _alertCount++; var alertType = alert is ChangeAlert ? "Change" : "Creation"; var item = new ListViewItem(alertType); item.SubItems.Add(Path.GetFileName(alert.Path)); item.SubItems.Add(DateTime.Now.ToLongTimeString()); lvwAlertLog.Items.Add(item); if (lvwAlertLog.Items.Count > 16) { lvwAlertLog.Items.RemoveAt(0); } tbxTotalAlerts.Text = _alertCount.ToString(); tbxFilesInQueue.Text = _scanner.VirusTotalQueue.CurrentQueueCount.ToString(); } }); }