コード例 #1
0
        public void Should_return_empty_list_if_no_instances_appy_to_plugin_and_instance_context_and_no_default_is_specified()
        {
            var plugin = new ContextConditionalPlugin {
                DoesApplyTo = c => false
            };

            var instances = new IContextConditionalPluginType[] { plugin };

            var plugins = new ConditionalPlugins <IContextConditionalPluginType, PluginContext>(false)
                          .Configure(x => x
                                     .Append <ContextConditionalPlugin>());

            var applies = plugins.ThatAppliesToOrDefault(instances,
                                                         new PluginContext(), new InstanceContext());

            applies.ShouldBeEmpty();
        }
コード例 #2
0
        public void Should_not_return_instances_that_dont_apply_to_plugin_and_instance_context(
            [Values(true, false)] bool applies)
        {
            var plugin = new ContextConditionalPlugin {
                DoesApplyTo = c => applies
            };

            var instances = new IContextConditionalPluginType[] { plugin };

            var plugins = new ConditionalPlugins <IContextConditionalPluginType, PluginContext>(false)
                          .Configure(x => x
                                     .Append <ContextConditionalPlugin>());

            var apply = plugins.ThatAppliesTo(instances, new PluginContext(),
                                              new InstanceContext()).ToList();

            apply.Count.ShouldEqual(applies ? 1 : 0);
            apply.Contains(plugin).ShouldEqual(applies);
        }
コード例 #3
0
        public void Should_not_return_instances_by_plugin_context_and_instance_that_are_not_registered_in_the_plugin_list(
            [Values(true, false)] bool isRegistered)
        {
            var plugin = new ContextConditionalPlugin {
                DoesApplyTo = c => true
            };

            var instances = new IContextConditionalPluginType[] { plugin };

            var plugins = new ConditionalPlugins <IContextConditionalPluginType, PluginContext>(false);

            if (isRegistered)
            {
                plugins.Configure(x => x
                                  .Append <ContextConditionalPlugin>());
            }

            var apply = plugins.ThatAppliesTo(instances, new PluginContext(), new InstanceContext()).ToList();

            apply.Count.ShouldEqual(isRegistered ? 1 : 0);
            apply.Contains(plugin).ShouldEqual(isRegistered);
        }