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);
        }
예제 #4
0
        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);
 }