public void StockMonitorBehavior() { var a = new Alert(new Ticker("AMD"), System.Guid.NewGuid()); a.AddPricePoint("initial", 50); var m = new StockMonitor(a, a.PricePoints[0]); Assert.Null(m.Value); var triggered = m.CheckTrigger("AMD", 50, DateTimeOffset.UtcNow, out var trigger); Assert.Equal(50, m.Value); Assert.False(triggered); triggered = m.CheckTrigger("AMD", 51, DateTimeOffset.UtcNow, out trigger); Assert.False(triggered); triggered = m.CheckTrigger("AMD", 48, DateTimeOffset.UtcNow, out trigger); Assert.True(triggered); Assert.Equal("AMD", trigger.Ticker); Assert.Equal(48, trigger.NewValue); Assert.Equal("DOWN", trigger.Direction); triggered = m.CheckTrigger("BING", 52, DateTimeOffset.UtcNow, out trigger); Assert.False(triggered); }
public AlertTests() { _uat = new Alert(new Ticker("AMD"), Guid.NewGuid()); _uat.AddPricePoint("initial", 50); _uat.AddPricePoint("updated", 50); // the same price point twice _uat.AddPricePoint("10% up", 50m + 0.1m * 50); _uat.AddPricePoint("10% down", 50m - 0.1m * 50); _uat.AddPricePoint("real high", 60); var last = _uat.PricePoints.Last().Id; _uat.RemovePricePoint(last); _uat.RemovePricePoint(Guid.NewGuid()); // make sure it does not blow up }
public StockMonitorContainerTests() { _uat = new StockMonitorContainer(); var a1 = new Alert(new Ticker("AMD"), Guid.NewGuid()); a1.AddPricePoint("initial", 50); var a2 = new Alert(new Ticker("BAC"), Guid.NewGuid()); a2.AddPricePoint("another one", 20); _uat.Register(a1); _uat.Register(a2); _uat.Register(a2); _amdPricePoint = a1.PricePoints[0]; _bacPricePoint = a2.PricePoints[0]; _initialTriggers = _uat.UpdateValue("AMD", 50, DateTimeOffset.UtcNow).ToList(); _subsequentTriggers = _uat.UpdateValue("AMD", 49, DateTimeOffset.UtcNow).ToList(); }