private void Open <TFeatureFactory>() where TFeatureFactory : IFeatureFactory { var featureFactory = _featureRegistry.Get <TFeatureFactory>(); var tabContentLifetimeHost = featureFactory.CreateTabContent(); var tabItemContainer = new TabItemContainer(Guid.NewGuid(), featureFactory.FeatureId, tabContentLifetimeHost, featureFactory); TabablzControl.GetLoadedInstances().First(Layout.GetIsTopLeftItem).AddToSource(tabItemContainer); TabablzControl.SelectItem(tabItemContainer); IsLeftDrawerOpen = false; }
public void A_feature_can_be_retrieved_from_the_registry_as_an_observable() { var registry = new FeatureRegistry { typeof(PrimaryFeature) }; Assert.That( registry.Get <PrimaryFeature>(), Is.InstanceOf <IObservable <PrimaryFeature> >()); }
public void A_feature_can_be_retrieved_from_the_registry_as_an_observable() { var registry = new FeatureRegistry { typeof (PrimaryFeature) }; Assert.That( registry.Get<PrimaryFeature>(), Is.InstanceOf<IObservable<PrimaryFeature>>()); }
public void When_a_feature_is_not_registered_it_returns_an_empty_and_uncompleted_observable() { var registry = new FeatureRegistry(); var initialized = false; registry .Get <SecondaryFeature>() .Timeout(TimeSpan.FromSeconds(2)) .Subscribe(f => { initialized = true; }, ex => { }); Assert.That(initialized, Is.False); }
public void When_a_feature_is_not_registered_it_returns_an_empty_and_uncompleted_observable() { var registry = new FeatureRegistry(); var initialized = false; registry .Get<SecondaryFeature>() .Timeout(TimeSpan.FromSeconds(2)) .Subscribe(f => { initialized = true; }, ex => { }); Assert.That(initialized, Is.False); }
public void Optional_features_can_throw_during_initialization_without_causing_other_features_to_fail_to_load() { SecondaryFeature.OnCtor = f => { throw new Exception("oops!"); }; var registry = new FeatureRegistry() .Add <SecondaryFeature>() .Add <PrimaryFeature>(); var initialized = false; registry .Get <SecondaryFeature>() .Timeout(TimeSpan.FromSeconds(2)) .Subscribe(f => { initialized = true; }, ex => { }); Assert.That(initialized, Is.False); }
public void When_a_feature_is_subscribed_before_it_is_registered_then_subscriber_is_notified_upon_registration() { var barrier = new Barrier(2); var initialized = false; var registry = new FeatureRegistry(); PrimaryFeature.OnActivate = barrier.SignalAndWait; registry .Get<SecondaryFeature>() .Timeout(TimeSpan.FromSeconds(2)) .Subscribe(f => { initialized = true; }, ex => { }); Assert.That(initialized, Is.False); registry.Add(r => new SecondaryFeature(new PrimaryFeature())); barrier.SignalAndWait(2000); Assert.That(initialized, Is.True); }
public void When_a_feature_is_subscribed_before_it_is_registered_then_subscriber_is_notified_upon_registration() { var barrier = new Barrier(2); var initialized = false; var registry = new FeatureRegistry(); PrimaryFeature.OnActivate = barrier.SignalAndWait; registry .Get <SecondaryFeature>() .Timeout(TimeSpan.FromSeconds(2)) .Subscribe(f => { initialized = true; }, ex => { }); Assert.That(initialized, Is.False); registry.Add(r => new SecondaryFeature(new PrimaryFeature())); barrier.SignalAndWait(2000); Assert.That(initialized, Is.True); }
public void Optional_features_can_throw_during_initialization_without_causing_other_features_to_fail_to_load() { SecondaryFeature.OnCtor = f => { throw new Exception("oops!"); }; var registry = new FeatureRegistry() .Add<SecondaryFeature>() .Add<PrimaryFeature>(); var initialized = false; registry .Get<SecondaryFeature>() .Timeout(TimeSpan.FromSeconds(2)) .Subscribe(f => { initialized = true; }, ex => { }); Assert.That(initialized, Is.False); }