public void FilterShouldApplyAndOperation() { PluginFilter tested = PluginFilter.Create.HasMaxVersion("55.66").And(PluginFilter.Create.HasMinVersion("55.66")); PluginDescriptor[] filtered = tested.Filter(this.descriptors).ToArray(); Assert.AreEqual(1, filtered.Length); Assert.AreSame(plugin1, filtered.First()); }
public void FilterShouldApplyHasInfoValue() { PluginFilter tested = PluginFilter.Create.HasInfoValue("validkey", "validvalue"); PluginDescriptor[] filtered = tested.Filter(this.descriptors).ToArray(); Assert.AreEqual(1, filtered.Length); Assert.AreSame(this.plugin1, filtered.First()); }
public void FilterShouldApplyIsNamed() { PluginFilter tested = PluginFilter.Create.IsNamed("MockPlugin1"); PluginDescriptor[] filtered = tested.Filter(this.descriptors).ToArray(); Assert.AreEqual(1, filtered.Length); Assert.AreSame(this.plugin1, filtered.First()); }
public void FilterShouldApplyDerivesFrom() { PluginFilter tested = PluginFilter.Create.DerivesFrom(typeof(MockPluginBase)); PluginDescriptor[] filtered = tested.Filter(this.descriptors).ToArray(); Assert.AreEqual(1, filtered.Length); Assert.AreSame(this.plugin1, filtered.First()); }
public void FilterShouldApplyHasMaxVersion() { PluginFilter tested = PluginFilter.Create.HasMaxVersion("55.66"); PluginDescriptor[] filtered = tested.Filter(this.descriptors).ToArray(); Assert.AreEqual(2, filtered.Length); Assert.IsTrue(filtered.Contains(plugin1)); Assert.IsTrue(filtered.Contains(plugin2)); }
public void FilterShouldApplyImplements() { PluginFilter tested = PluginFilter.Create.Implements(typeof(IMockPluginInterface1)); PluginDescriptor[] filtered = tested.Filter(this.descriptors).ToArray(); Assert.AreEqual(2, filtered.Length); Assert.IsTrue(filtered.Contains(plugin1)); Assert.IsTrue(filtered.Contains(plugin3)); }
/// <summary> /// Method for querying for plugins that satisfies a supplied filter /// </summary> /// <param name="filter">The requirements that plugins must fulfill to be returned. If no filter is provided then all known plugins is returned.</param> /// <returns> /// Enumerable of plugins that fulfills the requirements /// </returns> public IEnumerable<PluginDescriptor> Plugins(PluginFilter filter) { this.log.Debug(Resources.ReturningPluginsFor, filter); return filter != null ? filter.Filter(this.plugins) : this.plugins; }