private static async Task <IList <string> > DoCollect(FakeFolderBrowserFactory factory)
        {
            var engine = new FileCollector(factory);
            var result = await engine.CollectFileNames("path");

            return(result);
        }
        private static IList <string> PerformAsyncCollect(FakeFolderBrowserFactory factory)
        {
            var t = Task.Run <IList <string> >(async() => await DoCollect(factory));

            t.Wait();
            var list = t.Result;

            return(list);
        }
        public void ParseThreeLevels()
        {
            var factory = new FakeFolderBrowserFactory {
                FakeFolderBrowser = new FakeFolderBrowser(2, 10)
            };
            var result = PerformAsyncCollect(factory);

            Assert.AreEqual(10 * 3 + 10 * 2, result.Count);
        }
        public void ParseOneLevel()
        {
            var factory = new FakeFolderBrowserFactory {
                FakeFolderBrowser = new FakeFolderBrowser(0, 10)
            };
            var list = PerformAsyncCollect(factory);

            Assert.AreEqual(10, list.Count);
        }
        public void ParserStressTest_RandomLevels()
        {
            //9.4 sec
            var factory = new FakeFolderBrowserFactory {
                FakeFolderBrowser = new FakeFolderBrowser(700, 10, 10)
            };
            var result = PerformAsyncCollect(factory);

            Assert.IsTrue(result.Count >= 253400, result.Count + " was actual");
        }
        public void ParserStressTest_ManyFiles()
        {
            //11 sec
            var factory = new FakeFolderBrowserFactory {
                FakeFolderBrowser = new FakeFolderBrowser(8, 100)
            };
            var result = PerformAsyncCollect(factory);

            Assert.AreEqual(10960100, result.Count);
        }
        public void ParserStressTest_NineLevels()
        {
            //16 sec
            var factory = new FakeFolderBrowserFactory {
                FakeFolderBrowser = new FakeFolderBrowser(9, 10)
            };
            var result = PerformAsyncCollect(factory);

            Assert.AreEqual(9864100, result.Count);
        }