Example #1
0
        public PresentationWebResourceTestDto GetTest(int testId)
        {
            try
            {
                PresentationAutomapperConfig.Configure();

                WebResourceTest test = this.dataUnit.GetRepository <WebResourceTest>().GetById(testId);

                PresentationWebResourceTestDto presentationTestResults = new PresentationWebResourceTestDto();

                presentationTestResults = Mapper.Map <WebResourceTest, PresentationWebResourceTestDto>(test);

                presentationTestResults.TotalTestsCount      = presentationTestResults.Tests.Sum(res => res.TestsCount);
                presentationTestResults.TotalWrongTestsCount = presentationTestResults.Tests.Sum(res => res.WrongTestsCount);
                presentationTestResults.WrongUrls            = presentationTestResults.Tests.Where(res => res.WrongTestsCount == res.TestsCount).Count();
                presentationTestResults.SuccessfulUrls       = presentationTestResults.Tests.Where(res => res.WrongTestsCount == 0).Count();
                presentationTestResults.TotalUrls            = presentationTestResults.Tests.Count();

                return(presentationTestResults);
            }
            catch
            {
                throw;
            }
        }
Example #2
0
        private void RunSitemapTest(WebResourceTest webResourceTest, IEnumerable <string> urls,
                                    int timeout, int testsCount, double interval, CancellationToken token, string connectionId)
        {
            this.UrlsFound(connectionId, urls.Count());

            for (int i = 0; i < urls.Count(); i++)
            {
                if (!token.IsCancellationRequested)
                {
                    string url = urls.ElementAt(i);

                    TesterTest test = this.tester.Analyzer.GetResult(url, timeout, testsCount);

                    bool saving = this.saver.SaveTestData(webResourceTest, test);

                    if (saving)
                    {
                        this.TestFinished(connectionId, i + 1);
                    }

                    Task.Delay(Convert.ToInt32(interval * 1000)).Wait();
                }
                else
                {
                    break;
                }
            }
        }
Example #3
0
        private IList <string> HtmlTest(WebResourceTest webResourceTest, Domain domain, IList <string> urlsForTest,
                                        ref List <string> testedUrls, int timeout, double interval, int testsCount, CancellationToken token, string connectionId)
        {
            IList <double> responseTimes;
            DateTime       responseDate;

            IList <string> urls        = new List <string>();
            IList <string> elementUrls = new List <string>();

            foreach (var url in urlsForTest)
            {
                if (token.IsCancellationRequested)
                {
                    break;
                }

                elementUrls = htmlTester.GetUrls(url, domain, testsCount, token, out responseTimes, out responseDate);

                if (token.IsCancellationRequested)
                {
                    break;
                }

                foreach (string elementUrl in elementUrls)
                {
                    if (!testedUrls.Contains(elementUrl) && !urlsForTest.Contains(elementUrl) && !urls.Contains(elementUrl))
                    {
                        urls.Add(elementUrl);
                    }
                }

                if (!testedUrls.Contains(url))
                {
                    TesterTest test = this.tester.Analyzer.GetResult(url, timeout, testsCount - responseTimes.Count());
                    for (int i = responseTimes.Count() - 1; i >= 0; i--)
                    {
                        test.TestsCount++;
                        test.TestResults.Insert(0, new TesterTestResult()
                        {
                            ResponseTime = responseTimes.ElementAt(i)
                        });
                    }
                    test.Date = responseDate;
                    bool saving = this.saver.SaveTestData(webResourceTest, test);

                    if (saving)
                    {
                        this.TestFinished(connectionId, testedUrls.Count + 1);
                    }

                    testedUrls.Add(url);

                    Task.Delay(Convert.ToInt32(interval * 1000)).Wait();
                }
            }

            return(urls);
        }
Example #4
0
        public int GetTestId(string url)
        {
            url = UrlAdaptor.GetUrl(url);

            try
            {
                WebResourceTest webResourceTest = this.saver.GetNewTest(url);
                return(webResourceTest.Id);
            }
            catch
            {
                throw;
            }
        }
Example #5
0
        public void RunHtmlTest(WebResourceTest webResourceTest, int timeout, double interval, int testsCount,
                                CancellationToken token, string connectionId)
        {
            string globalUrl = webResourceTest.WebResource.Url;

            IList <string> urlsToTest = new List <string>();
            List <string>  testedUrls = new List <string>();

            Domain globalDomain = htmlTester.GetUrlDomain(globalUrl);

            urlsToTest.Add(globalUrl);

            while ((urlsToTest.Any()) && (!token.IsCancellationRequested))
            {
                this.UrlsFound(connectionId, urlsToTest.Count() + testedUrls.Count());
                urlsToTest = this.HtmlTest(webResourceTest, globalDomain, urlsToTest, ref testedUrls, timeout, interval, testsCount, token, connectionId);
            }
        }
Example #6
0
        public WebResourceTest GetNewTest(string url)
        {
            try
            {
                var webResourceRepository           = this.dataUnit.GetRepository <WebResource>();
                IEnumerable <WebResource> resources = webResourceRepository.Get((x) => x.Url == url);
                WebResource resource;

                if (resources.Any())
                {
                    resource = resources.First();
                }
                else
                {
                    resource = new WebResource()
                    {
                        Url = url,
                        SitemapResources = new List <SitemapResource>(),
                        Tests            = new List <WebResourceTest>()
                    };
                    webResourceRepository.Insert(resource);
                }

                WebResourceTest webResourceTest = new WebResourceTest()
                {
                    Tests = new List <Test>(),
                    Date  = DateTime.Now
                };

                resource.Tests.Add(webResourceTest);

                this.dataUnit.SaveChanges();

                return(webResourceTest);
            }
            catch
            {
                throw;
            }
        }
Example #7
0
        public bool SaveTestData(WebResourceTest webResourceTest, TesterTest test)
        {
            EntitiesAutomapperConfig.Configure();
            try
            {
                Test testEntity = new Test();

                testEntity = Mapper.Map <TesterTest, Test>(test);

                IEnumerable <SitemapResource> sitemaps = webResourceTest.WebResource.SitemapResources.Where((x) => x.Url == test.Url);

                if (sitemaps.Count() > 0)
                {
                    testEntity.SitemapResource = sitemaps.First();
                }
                else
                {
                    SitemapResource sitemap = new SitemapResource()
                    {
                        Url         = test.Url,
                        WebResource = webResourceTest.WebResource
                    };
                    testEntity.SitemapResource = sitemap;
                }

                webResourceTest.Tests.Add(testEntity);

                this.dataUnit.SaveChanges();

                return(true);
            }
            catch
            {
                return(false);
            }
        }