示例#1
0
        public async Task PersistenceProvider_Sharded_9_WriteRead()
        {
            const string testName = nameof(PersistenceProvider_Sharded_9_WriteRead);

            IStorageProvider store1 = new MockStorageProvider(2);
            IStorageProvider store2 = new MockStorageProvider(2);
            IStorageProvider store3 = new MockStorageProvider(2);
            IStorageProvider store4 = new MockStorageProvider(2);
            IStorageProvider store5 = new MockStorageProvider(2);
            IStorageProvider store6 = new MockStorageProvider(2);
            IStorageProvider store7 = new MockStorageProvider(2);
            IStorageProvider store8 = new MockStorageProvider(2);
            IStorageProvider store9 = new MockStorageProvider(2);
            await storageProviderManager.AddAndInitProvider("Store1", store1);

            await storageProviderManager.AddAndInitProvider("Store2", store2);

            await storageProviderManager.AddAndInitProvider("Store3", store3);

            await storageProviderManager.AddAndInitProvider("Store4", store4);

            await storageProviderManager.AddAndInitProvider("Store5", store5);

            await storageProviderManager.AddAndInitProvider("Store6", store6);

            await storageProviderManager.AddAndInitProvider("Store7", store7);

            await storageProviderManager.AddAndInitProvider("Store8", store8);

            await storageProviderManager.AddAndInitProvider("Store9", store9);

            ShardedStorageProvider composite = await ConfigureShardedStorageProvider(testName, storageProviderManager);

            await Test_PersistenceProvider_WriteRead(testName, composite);
        }
示例#2
0
        public void ShouldSaveTagsIntoDatabase()
        {
            string           startingUrl     = @"http://www.samplesite.com/pages";
            string           link            = @"pages/page1.htm";
            IStorageProvider storageProvider = new MockStorageProvider();
            IOutputProvider  outputProvider  = new MockOutputProvider();
            int recursionLevel = 1;

            Uri    uri          = new Uri(startingUrl);
            string completeLink = uri.Scheme + @":\\" + new Uri(startingUrl).Authority + @"/" + link;

            if (!storageProvider.Contains(completeLink))
            {
                outputProvider.WriteLine(completeLink + " " + (recursionLevel + 1).ToString());
                storageProvider.TryAdd(completeLink, recursionLevel + 1);
            }

            Assert.IsTrue(storageProvider.GetRecords().Count == 1);
            Assert.IsTrue(storageProvider.GetRecords().ContainsKey(completeLink));

            if (!storageProvider.Contains(completeLink))
            {
                storageProvider.TryAdd(completeLink, recursionLevel + 1);
            }

            Assert.IsTrue(storageProvider.GetRecords().Count == 1);
        }
示例#3
0
        public async Task PersistenceProvider_Mock_WriteRead()
        {
            const string testName = nameof(PersistenceProvider_Mock_WriteRead);

            IStorageProvider store = new MockStorageProvider();
            var cfg = new ProviderConfiguration(providerCfgProps, null);
            await store.Init(testName, storageProviderManager, cfg);

            await Test_PersistenceProvider_WriteRead(testName, store);
        }
示例#4
0
        public async Task PersistenceProvider_Sharded_WriteRead()
        {
            const string testName = nameof(PersistenceProvider_Sharded_WriteRead);

            IStorageProvider store1 = new MockStorageProvider(2);
            IStorageProvider store2 = new MockStorageProvider(2);
            await storageProviderManager.AddAndInitProvider("Store1", store1);

            await storageProviderManager.AddAndInitProvider("Store2", store2);

            var composite = await ConfigureShardedStorageProvider(testName, storageProviderManager);

            await Test_PersistenceProvider_WriteRead(testName, composite);
        }
示例#5
0
        public void ShouldCallParsingForEachPageFromPreviousIteration()
        {
            IInputProvider         inputProvider         = new MockInputProvider();
            IOutputProvider        outputProvider        = new MockOutputProvider();
            IStorageProvider       storageProvider       = new MockStorageProvider();
            IClientProvider        clientProvider        = new MockClientProvider();
            IPageProvider          pageProvider          = new MockPageProvider();
            ILinkProcessorProvider linkProcessorProvider = new MockLinkProcessorProvider(outputProvider, storageProvider);
            IPageParserProvider    pageParserProvider    = new MockPageParcerProvider();

            WebPageProcessor wpp = new WebPageProcessor(storageProvider, inputProvider, outputProvider, pageProvider, linkProcessorProvider, pageParserProvider, 0);

            wpp.ProcessWebPage("Test", 0);

            Assert.IsTrue(storageProvider.Contains("Test1processed"));
            Assert.IsTrue(storageProvider.Contains("Test2processed"));
            Assert.IsTrue(storageProvider.Contains("Test3processed"));
            Assert.IsTrue(storageProvider.Contains("Test4processed"));
            Assert.IsTrue(storageProvider.Contains("Test5processed"));
            Assert.IsTrue(storageProvider.Contains("Test6processed"));
            Assert.IsTrue(storageProvider.Contains("Test7processed"));
            Assert.IsTrue(storageProvider.Contains("Test8processed"));
        }