コード例 #1
0
        public void EnumerateWhenOnlyGenesisAndEschatonEnumeratesTwiceOnly()
        {
            var universeEventColl = new[]
            {
                A.Fake <IUniverseEvent>(),
                new UniverseEvent(UniverseStateEvent.Eschaton, DateTime.UtcNow, new object())
            };

            A.CallTo(
                () => this.dataManifestInterpreter.PlayForward(A <TimeSpan> .Ignored))
            .Returns(Task.FromResult((IUniverse) new Universe(universeEventColl)));

            var lazyCollection = new LazyTransientUniverse(this.dataManifestInterpreter);

            var tracker = 2;

            foreach (var _ in lazyCollection)
            {
                tracker--;
            }

            if (tracker != 0)
            {
                Assert.Fail("Enumerated over an unexpected number of items");
            }
            else
            {
                Assert.True(true);
            }
        }
コード例 #2
0
        public void EnumerateWhenEmptyUniverseReturnsEmptyEnumeration()
        {
            A.CallTo(
                () => this.dataManifestInterpreter.PlayForward(A <TimeSpan> .Ignored))
            .Returns(Task.FromResult((IUniverse) new Universe(null)));

            var lazyCollection = new LazyTransientUniverse(this.dataManifestInterpreter);

            foreach (var _ in lazyCollection)
            {
                Assert.Fail("Should of been empty collection and not able to access enumeration");
            }

            Assert.True(true);
        }
コード例 #3
0
        public void EnumerateWhenSevenEventsOverThreeFetchesEnumeratesSevenOnly()
        {
            var universeEventColl1 = new[] { A.Fake <IUniverseEvent>(), A.Fake <IUniverseEvent>() };

            var universeEventColl2 = new[]
            {
                A.Fake <IUniverseEvent>(), A.Fake <IUniverseEvent>(),
                A.Fake <IUniverseEvent>()
            };

            var universeEventColl3 = new[]
            {
                A.Fake <IUniverseEvent>(),
                new UniverseEvent(UniverseStateEvent.Eschaton, DateTime.UtcNow, new object())
            };

            var combinedUniverse = universeEventColl1.Concat(universeEventColl2).Concat(universeEventColl3);

            A.CallTo(
                () => this.dataManifestInterpreter.PlayForward(
                    A <TimeSpan> .Ignored)).
            Returns(Task.FromResult((IUniverse) new Universe(combinedUniverse)));

            var lazyCollection = new LazyTransientUniverse(this.dataManifestInterpreter);

            var tracker = 7;

            foreach (var _ in lazyCollection)
            {
                tracker--;
            }

            if (tracker != 0)
            {
                Assert.Fail("Enumerated over an unexpected number of items");
            }
            else
            {
                Assert.True(true);
            }
        }