// reproduces GH issue 3877 public void ConfigurationForAddedSubscriptionIsAlwaysPresent() { var dataFeed = new TestDataFeed(); var dataManager = new DataManager(dataFeed, new UniverseSelection(_algorithm, _securityService), _algorithm, _algorithm.TimeKeeper, MarketHoursDatabase.AlwaysOpen, false, new RegisteredSecurityDataTypesProvider()); var config = new SubscriptionDataConfig(typeof(TradeBar), Symbols.SPY, Resolution.Daily, TimeZones.NewYork, TimeZones.NewYork, false, false, false); // Universe A: adds the config dataManager.SubscriptionManagerGetOrAdd(config); var request = new SubscriptionRequest(false, null, new Security(Symbols.SPY, SecurityExchangeHours.AlwaysOpen(DateTimeZone.Utc), new Cash(Currencies.USD, 1, 1), SymbolProperties.GetDefault(Currencies.USD), new IdentityCurrencyConverter(Currencies.USD), new RegisteredSecurityDataTypesProvider(), new SecurityCache()), config, new DateTime(2019, 1, 1), new DateTime(2019, 1, 1)); dataFeed.Subscription = new Subscription(request, new EnqueueableEnumerator <SubscriptionData>(), null); // Universe A: adds the subscription dataManager.AddSubscription(request); // Universe B: adds the config dataManager.SubscriptionManagerGetOrAdd(config); // Universe A: removes the subscription Assert.IsTrue(dataManager.RemoveSubscription(config)); Assert.AreEqual(0, dataManager.GetSubscriptionDataConfigs(config.Symbol).Count); // Universe B: adds the subscription Assert.IsTrue(dataManager.AddSubscription(request)); // the config should be present Assert.AreEqual(1, dataManager.GetSubscriptionDataConfigs(config.Symbol).Count); dataManager.RemoveAllSubscriptions(); }
public TanpActorSystem() { ActorSystem = ActorSystem.Create("TANP"); // initialize structure IActorRef productManager = ActorSystem.ActorOf <ProductManagementActor>(ActorNames.ProductManager()); IActorRef basketManager = ActorSystem.ActorOf <ProductManagementActor>(ActorNames.BasketManager()); // populate with hard coded test feed TestDataFeed.GetProducts().ForEach(m => productManager.Tell(m)); }