Files
quantconnect--lean/Tests/Engine/RealTime/BacktestingRealTimeHandlerTests.cs
Martin Molinero a92bee5bf1 Fix OnEndOfDay not fired
- Adding `IRealTimeHandler.OnSecurityChanged()` will be used to update
the `OnEndOfDay` security related scheduled events
- Adding `BaseRealTimeHandler.cs` to reduce code duplication in the
`Backtesting` and `LiveTrading` `RealTimeHandlers`
- Adding CSharp and Python regression tests
- Deprecating `OnEndOfDay()` callback because of two reasons, mainly
because Python does not support two methods with the same name, but also
because different assets have different market close times.
- `ScheduledEvents` set at the same time will now be deterministic
2019-06-20 17:35:28 -03:00

50 lines
1.6 KiB
C#

/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using System;
using NUnit.Framework;
using QuantConnect.Lean.Engine.RealTime;
using QuantConnect.Scheduling;
namespace QuantConnect.Tests.Engine.RealTime
{
[TestFixture]
public class BacktestingRealTimeHandlerTests
{
[Test]
public void TriggersScheduledEventsSameTimeInOrder()
{
var realTimeHandler = new BacktestingRealTimeHandler();
var eventTime = DateTime.UtcNow;
var count = 0;
for (var i = 0; i < 100; i++)
{
var id = i;
realTimeHandler.Add(new ScheduledEvent($"{id}", eventTime,
(s, time) =>
{
Assert.AreEqual(id, count);
count++;
}));
}
realTimeHandler.SetTime(DateTime.UtcNow);
Assert.AreEqual(100, count);
}
}
}