public void ReviewCompletedItemsFindsItemsWithBasicSuspiciousPhrase() { var reviewer = new CompletedItemReviewer(CreateSuspiciousPhraseList()); var results = CreateTestSearchResults(); var summary = reviewer.ReviewCompletedItems(results, new PriceStats(), new List<SearchSuspiciousPhrase>()); Assert.AreEqual(1, summary.SuspiciousItems.Count); Assert.AreEqual("3", summary.SuspiciousItems[0].ItemNumber); }
public void ReviewCompletedItemsFindsNothingSuspiciousWithNoPricesOrSuspiciousPhrases() { var reviewer = new CompletedItemReviewer(new List<SuspiciousPhrase>()); var results = CreateTestSearchResults(); var summary = reviewer.ReviewCompletedItems(results, new PriceStats() , new List<SearchSuspiciousPhrase>()); results.AssertNoneAreSuspicious(); Assert.AreEqual(0, summary.SuspiciousItems.Count); }
public void ReviewCompletedItemsFindsItemsOutside2StandardDeviationsOfTheAveragePrice() { var reviewer = new CompletedItemReviewer(new List<SuspiciousPhrase>()); var results = CreateTestSearchResults(); var summary = reviewer.ReviewCompletedItems(results, new PriceStats() { AverageSalePrice = 28.54, StandardDeviation = 3.50, NumberOfResults = 25 }, new List<SearchSuspiciousPhrase>()); Assert.AreEqual(1, summary.SuspiciousItems.Count); Assert.AreEqual("2", summary.SuspiciousItems[0].ItemNumber); }
private void Startup() { // Hack - force log4net to initialise before Metrics.net _log.Debug(""); // Global exception handler in case anything blows AppDomain.CurrentDomain.UnhandledException += (o, e) => { _log.Fatal($"Unhandled exception thrown: {e.ExceptionObject}"); }; // Now Metrics.NET Metric.Config.WithHttpEndpoint("http://localhost:14999/"); // Topshelf configuration HostFactory.Run(config => { config.Service<SearchMonkeyService>(service => { service.ConstructUsing(name => { var notifier = new SlackNotifier(ConfigurationManager.AppSettings["SlackServiceUri"]); var finder = new EbayFinder() .Configure(c => { // Initialize service end-point configuration c.EndPointAddress = "http://svcs.ebay.com/services/search/FindingService/v1"; c.GlobalId = "EBAY-GB"; // set eBay developer account AppID here! c.ApplicationId = ConfigurationManager.AppSettings["eBayApplicationId"]; }); var factory = new SearchRepositoryFactory(); var resultAggregator = new ResultAggregator(notifier, Int32.Parse(ConfigurationManager.AppSettings["ReportingPeriod"])); using (var repo = factory.CreateSearchRepository()) { var reviewer = new CompletedItemReviewer(repo.GetBasicSuspiciousPhrases().ToList()); return new SearchMonkeyService(finder, notifier, factory, reviewer, resultAggregator); } }); service.WhenStarted(svc => svc.Start()); service.WhenStopped(svc => svc.Stop()); }); config.RunAsLocalSystem(); config.SetDescription(ServiceDescription); config.SetDisplayName(ServiceDisplayName); config.SetServiceName(ServiceName); }); }
public void ReviewCompletedItemsThrowsWithNullSearchSuspiciousPhrases() { var reviewer = new CompletedItemReviewer(CreateSuspiciousPhraseList()); reviewer.ReviewCompletedItems(CreateTestSearchResults(), new PriceStats(), null); }
public void ReviewCompletedItemsThrowsWithNullItems() { var reviewer = new CompletedItemReviewer(CreateSuspiciousPhraseList()); reviewer.ReviewCompletedItems(null, new PriceStats(), CreateSearchSuspiciousPhraseList()); }
public void ConstructsWithEmptyList() { var reviewer = new CompletedItemReviewer(new List<SuspiciousPhrase>()); }
public void ConstructorThrowsIfGivenNullList() { var reviewer = new CompletedItemReviewer(null); }