public void NewDataAvailableShouldFire() { var currentTime = new DateTime(2000, 01, 01); var available = false; var enumerator = new ScannableEnumerator <Tick>( new IdentityDataConsolidator <Tick>(), DateTimeZone.ForOffset(Offset.FromHours(-5)), new ManualTimeProvider(currentTime), (s, e) => { available = true; } ); // returns true even if no data present until stop is called Assert.IsTrue(enumerator.MoveNext()); Assert.IsNull(enumerator.Current); Assert.IsFalse(available); var tick1 = new Tick(currentTime, Symbols.SPY, 199.55m, 199, 200) { Quantity = 10 }; enumerator.Update(tick1); Assert.IsTrue(available); enumerator.Dispose(); }
public void PassesTicksStraightThrough() { var currentTime = new DateTime(2000, 01, 01); var enumerator = new ScannableEnumerator <Tick>( new IdentityDataConsolidator <Tick>(), DateTimeZone.ForOffset(Offset.FromHours(-5)), new ManualTimeProvider(currentTime), (s, e) => { } ); // returns true even if no data present until stop is called Assert.IsTrue(enumerator.MoveNext()); Assert.IsNull(enumerator.Current); var tick1 = new Tick(currentTime, Symbols.SPY, 199.55m, 199, 200) { Quantity = 10 }; enumerator.Update(tick1); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(tick1, enumerator.Current); Assert.IsTrue(enumerator.MoveNext()); Assert.IsNull(enumerator.Current); var tick2 = new Tick(currentTime, Symbols.SPY, 199.56m, 199.21m, 200.02m) { Quantity = 5 }; enumerator.Update(tick2); Assert.IsTrue(enumerator.MoveNext()); Assert.AreEqual(tick2, enumerator.Current); enumerator.Dispose(); }