package fitnesse.plugins; import java.util.Calendar; import fitnesse.testrunner.TestSystemFactoryRegistry; import fitnesse.testsystems.slim.CustomComparatorRegistry; import fitnesse.testsystems.slim.tables.SlimTableFactory; import fitnesse.plugins.slimcoverage.CoverageSlimTestSystemFactory; import fitnesse.wikitext.parser.SymbolProvider; import fitnesse.wikitext.parser.Today; public class DummyPluginFeatureFactory extends PluginFeatureFactoryBase { static final String SLIM_TABLE = "dummySlimTable"; private SlimTableFactory slimTableFactory; private CustomComparatorRegistry customComparatorRegistry; private TestSystemFactoryRegistry testSystemFactoryRegistry; @Override public void registerSymbolTypes(SymbolProvider symbolProvider) throws PluginException { symbolProvider.add(new MonthsFromToday2()); } @Override public void registerSlimTables(SlimTableFactory slimTableFactory) throws PluginException { slimTableFactory.addTableType(SLIM_TABLE, PluginsLoaderTest.TestSlimTable.class); this.slimTableFactory = slimTableFactory; registerSlimCoverageIfPossible(); } public static class MonthsFromToday2 extends Today { public MonthsFromToday2() { super("MonthsFromToday2", "!monthsFromToday2", Calendar.MONTH); } } @Override public void registerCustomComparators(CustomComparatorRegistry customComparatorRegistry) throws PluginException { this.customComparatorRegistry = customComparatorRegistry; registerSlimCoverageIfPossible(); } @Override public void registerTestSystemFactories(TestSystemFactoryRegistry testSystemFactoryRegistry) throws PluginException { this.testSystemFactoryRegistry = testSystemFactoryRegistry; registerSlimCoverageIfPossible(); } protected void registerSlimCoverageIfPossible() { if (slimTableFactory != null && customComparatorRegistry != null && testSystemFactoryRegistry != null) { testSystemFactoryRegistry .registerTestSystemFactory("slimcoverage", new CoverageSlimTestSystemFactory(slimTableFactory, customComparatorRegistry)); } } }