Beispiel #1
0
        public void TestCacheStates()
        {
            var generator = getGuidsGenerator();

            assertIsNotACachingState(CachingGenerator.GetCachingGeneratorState(generator));

            var cachingGenerator = CachingGenerator.Create(generator);
            var getCachingState  = (Func <CachingGenerator.State>)(() => CachingGenerator.GetCachingGeneratorState(cachingGenerator));

            assertIsEmptyCachingState(getCachingState());

            var firstEnumerator  = cachingGenerator.GetEnumerator();
            var secondEnumerator = cachingGenerator.GetEnumerator();

            firstEnumerator.MoveNext();
            assertIsValidCachingState(1, getCachingState());

            secondEnumerator.MoveNext();
            assertIsValidCachingState(1, getCachingState());

            firstEnumerator.MoveNext();
            assertIsValidCachingState(2, getCachingState());
            firstEnumerator.Reset();
            assertIsValidCachingState(2, getCachingState());
        }
Beispiel #2
0
        public void SimultaneousIteration()
        {
            var generator        = getGuidsGenerator();
            var cachingGenerator = CachingGenerator.Create(generator);

            var firstEnumerator  = cachingGenerator.GetEnumerator();
            var secondEnumerator = cachingGenerator.GetEnumerator();

            List <Guid> lst1 = new List <Guid>();
            List <Guid> lst2 = new List <Guid>();

            firstEnumerator.MoveNext();
            lst1.Add(firstEnumerator.Current);
            firstEnumerator.MoveNext();
            lst1.Add(firstEnumerator.Current);

            secondEnumerator.MoveNext();
            lst2.Add(secondEnumerator.Current);

            firstEnumerator.MoveNext();
            lst1.Add(firstEnumerator.Current);

            secondEnumerator.MoveNext();
            lst2.Add(secondEnumerator.Current);
            secondEnumerator.MoveNext();
            lst2.Add(secondEnumerator.Current);

            CollectionAssert.AreEqual(lst1, lst2);

            assertIsValidCachingState(3, CachingGenerator.GetCachingGeneratorState(cachingGenerator));
        }