Пример #1
0
        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);
        }
Пример #2
0
        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
        }
Пример #3
0
        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();
        }