Пример #1
0
        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;
        }
Пример #2
0
        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>>());
        }
Пример #4
0
        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);
        }
Пример #6
0
        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);
        }
Пример #8
0
        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);
        }