@@ -279,21 +279,30 @@ private static IEnumerable<TestCaseData> GetFutureChainApisTestData()
279
279
280
280
foreach ( var symbol in new [ ] { futureSymbol , canonicalFutureSymbol , futureOptionSymbol } )
281
281
{
282
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 06 , 23 , 0 , 0 ) ) ;
283
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 0 , 0 , 0 ) ) ;
284
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 1 , 0 , 0 ) ) ;
285
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 2 , 0 , 0 ) ) ;
286
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 6 , 0 , 0 ) ) ;
287
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 12 , 0 , 0 ) ) ;
288
- yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 16 , 0 , 0 ) ) ;
282
+ foreach ( var withFutureAdded in new [ ] { true , false } )
283
+ {
284
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 06 , 23 , 0 , 0 ) , withFutureAdded ) ;
285
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 0 , 0 , 0 ) , withFutureAdded ) ;
286
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 1 , 0 , 0 ) , withFutureAdded ) ;
287
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 2 , 0 , 0 ) , withFutureAdded ) ;
288
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 6 , 0 , 0 ) , withFutureAdded ) ;
289
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 12 , 0 , 0 ) , withFutureAdded ) ;
290
+ yield return new TestCaseData ( symbol , new DateTime ( 2013 , 10 , 07 , 16 , 0 , 0 ) , withFutureAdded ) ;
291
+ }
289
292
}
290
293
}
291
294
292
295
[ TestCaseSource ( nameof ( GetFutureChainApisTestData ) ) ]
293
- public void FuturesChainApisAreConsistent ( Symbol symbol , DateTime dateTime )
296
+ public void FuturesChainApisAreConsistent ( Symbol symbol , DateTime dateTime , bool withFutureAdded )
294
297
{
295
298
_algorithm . SetDateTime ( dateTime . ConvertToUtc ( _algorithm . TimeZone ) ) ;
296
299
300
+ if ( withFutureAdded )
301
+ {
302
+ // It should work regardless of whether the future is added to the algorithm
303
+ _algorithm . AddFuture ( "ES" ) ;
304
+ }
305
+
297
306
var exchange = MarketHoursDatabase . FromDataFolder ( ) . GetExchangeHours ( symbol . ID . Market , symbol , symbol . SecurityType ) ;
298
307
var chainFromAlgorithmApi = _algorithm . FuturesChain ( symbol ) . Select ( x => x . Symbol ) . ToList ( ) ;
299
308
var chainFromChainProviderApi = _futureChainProvider . GetFutureContractList ( symbol ,
0 commit comments