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); } }
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); }
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); } }