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(); }
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); }
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); }