public void UniverseSelectionAddAndRemove()
        {
            _algorithm.SetLiveMode(true);
            _algorithm.UniverseSettings.Resolution            = Resolution.Hour;
            _algorithm.UniverseSettings.MinimumTimeInUniverse = TimeSpan.Zero;
            var added       = false;
            var first       = true;
            var tokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(15));

            foreach (var timeSlice in _synchronizer.StreamData(tokenSource.Token))
            {
                if (!added)
                {
                    added = true;
                    _algorithm.AddUniverse(SecurityType.Equity,
                                           "AUniverse",
                                           Resolution.Second,
                                           Market.USA,
                                           _algorithm.UniverseSettings,
                                           time =>
                    {
                        return(first ? new[] { "SPY" } : new[] { "AAPL" });
                    }
                                           );
                }
                else if (!timeSlice.IsTimePulse)
                {
                    if (first)
                    {
                        Assert.IsTrue(_algorithm.SubscriptionManager.SubscriptionDataConfigService
                                      .GetSubscriptionDataConfigs(Symbols.SPY, includeInternalConfigs: true).Any(config => config.Resolution == Resolution.Second));
                        Assert.IsFalse(_algorithm.SubscriptionManager.SubscriptionDataConfigService.GetSubscriptionDataConfigs(Symbols.AAPL, includeInternalConfigs: true).Any());
                        first = false;
                    }
                    else
                    {
                        Assert.IsTrue(_algorithm.SubscriptionManager.SubscriptionDataConfigService
                                      .GetSubscriptionDataConfigs(Symbols.AAPL, includeInternalConfigs: true).Any(config => config.Resolution == Resolution.Second));
                        Assert.IsFalse(_algorithm.SubscriptionManager.SubscriptionDataConfigService.GetSubscriptionDataConfigs(Symbols.SPY, includeInternalConfigs: true).Any());
                        break;
                    }
                }
                _algorithm.OnEndOfTimeStep();
            }
            Assert.IsFalse(tokenSource.IsCancellationRequested);
        }