public void CreatePluginAddSinglePluginConfigureCustomServicesGetPluginClass() { TestLogger testLogger = new TestLogger(); using (TestPluginManager pluginManager = new TestPluginManager(testLogger)) { Assert.AreEqual(pluginManager.PluginsGetLoaded().Count, 1); pluginManager.PluginLoad("..\\..\\..\\..\\..\\Plugins\\BadEgg.Plugin\\bin\\Debug\\netcoreapp3.1\\BadEgg.Plugin.dll", false); Assert.AreEqual(pluginManager.PluginsGetLoaded().Count, 2); pluginManager.AddAssembly(Assembly.GetExecutingAssembly()); pluginManager.ConfigureServices(); // using inbuild DI container, create a mock instance List <MockPluginHelperClass> mockPluginHelpers = pluginManager.PluginGetClasses <MockPluginHelperClass>(); Assert.IsNotNull(mockPluginHelpers); Assert.AreNotEqual(mockPluginHelpers.Count, 0); } Assert.AreEqual(testLogger.Logs[0].LogLevel, LogLevel.PluginLoadSuccess); Assert.AreEqual(testLogger.Logs[1].LogLevel, LogLevel.PluginConfigureError); Assert.AreEqual(testLogger.Logs[2].LogLevel, LogLevel.PluginLoadSuccess); Assert.AreEqual(testLogger.Logs[2].Data, "BadEgg.Plugin.dll"); }
public void CreatePluginEnsureINotificationServiceRegistered() { TestLogger testLogger = new TestLogger(); using (TestPluginManager pluginManager = new TestPluginManager(testLogger)) { Assert.AreEqual(pluginManager.PluginsGetLoaded().Count, 1); pluginManager.AddAssembly(Assembly.GetExecutingAssembly()); pluginManager.ConfigureServices(); List <INotificationService> list = pluginManager.PluginGetClasses <INotificationService>(); Assert.AreEqual(list.Count, 1); } }