示例#1
0
        public void TestService()
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            var loggerFactory = new LoggerFactory();

            var options = new DbContextOptionsBuilder <SiteCheckerDbContext>()
                          .UseInMemoryDatabase(databaseName: "InMemoryDatabase_UrlCheckTaskServiceTest_TestService")
                          .Options;

            var httpUrlChecker = new HttpUrlChecker();
            var dataStore      = new DbContextDataStore(new SiteCheckerDbContext(options));

            var dataStoreInitializer = new SiteCheckerDataStoreInitializer();

            dataStoreInitializer.Initialize(dataStore);

            // Количество задач в репозитории
            var taskCountInDataStore = dataStore.GetAll <UrlCheckTask>().Count();

            // Количество урлов для проверки в инициализаторе репозитория
            var dataStoreInitializerUrlCount = SiteCheckerDataStoreInitializer.UrlList.Distinct().Count();

            Assert.True(taskCountInDataStore > 0);
            Assert.Equal(dataStoreInitializerUrlCount, taskCountInDataStore);
            Assert.Equal(0, dataStore.GetAll <UrlCheckTaskResult>().Count());

            var urlCheckTaskService = new UrlCheckTaskService(httpUrlChecker, dataStore, loggerFactory);

            var waitMillisec = 10000;

            urlCheckTaskService.ProcessAllTasks(waitMillisec);
            urlCheckTaskService.ProcessAllTasks(waitMillisec);
            urlCheckTaskService.ProcessAllTasks(waitMillisec);
            urlCheckTaskService.ProcessAllTasks(waitMillisec);

            // Обработка задач была вызвана 4 раза. Результаты проверок сохраняются в БД. Количество выполненых проверок должно быть равно х4 от количества задач.
            var checkResultCount = dataStore.GetAll <UrlCheckTaskResult>().Count();

            Assert.Equal(taskCountInDataStore * 4, checkResultCount);
        }
示例#2
0
        public void TestDataStoreInitializer()
        {
            var options = new DbContextOptionsBuilder <SiteCheckerDbContext>()
                          .UseInMemoryDatabase("TestDataStoreInitializer")
                          .Options;

            var dataStore            = new DbContextDataStore(new SiteCheckerDbContext(options));
            var dataStoreInitializer = new SiteCheckerDataStoreInitializer();

            dataStoreInitializer.Initialize(dataStore);

            // Количество задач в репозитории
            var taskCountInDataStore = dataStore.GetAll <UrlCheckTask>().Count();

            // Количество урлов для проверки в инициализаторе репозитория
            var dataStoreInitializerUrlCount = SiteCheckerDataStoreInitializer.UrlList.Distinct().Count();

            Assert.True(taskCountInDataStore > 0);
            Assert.Equal(dataStoreInitializerUrlCount, taskCountInDataStore);
            Assert.Equal(0, dataStore.GetAll <UrlCheckTaskResult>().Count());
        }