public void PluginManagerRegisterProvisioned_Test() { var fs = new PhysicalFileSystem(); var appDataDirectory = new DirectoryInfo(Path.GetTempPath()) .CreateSubdirectory(Guid.NewGuid().ToString()); var module = new Module(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, appDataDirectory, Version.Parse("1.0.0")); var resourceDir = module.ContentsDirectory.CreateSubdirectory("resource") .CreateSubdirectory("TestPluginProvisioned"); string pluginJson = TestUtilities.GetStringResource("Loader.plugin.json"); File.WriteAllText(Path.Combine(resourceDir.FullName, "plugin.json"), pluginJson); var directoryProvider = new ContentDirectoryProvider(appDataDirectory.FullName); var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>(); optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}"); var sqliteProvider = new PluginConfigurationStore(optionsBuilder); var logProvider = new LogProvider(); var pluginManager = new PluginManager(logProvider, directoryProvider, sqliteProvider, fs); var provision = pluginManager.GetProvision <ProvisionedPluginImpl>(module); var plugin = new ProvisionedPluginImpl(provision); pluginManager.Register <ProvisionedPlugin>(plugin); Assert.NotEmpty(pluginManager.Get <ProvisionedPlugin>()); Assert.NotNull(pluginManager.Get <ProvisionedPlugin>("TestPluginProvisioned")); }
public void ContentDirectoryProvider_Test() { string tmp = Path.GetTempPath(); IContentDirectoryProvider cdp = new ContentDirectoryProvider(tmp); Assert.Equal(tmp, cdp.ApplicationData.FullName); }
public void PluginManagerRegister_Test() { var appDataDirectory = new DirectoryInfo(Path.GetTempPath()) .CreateSubdirectory(Guid.NewGuid().ToString()); var directoryProvider = new ContentDirectoryProvider(appDataDirectory.FullName); var optionsBuilder = new DbContextOptionsBuilder <DatabaseContext>(); optionsBuilder.UseSqlite($"Data Source={Path.GetTempFileName()}"); var sqliteProvider = new PluginConfigurationStore(optionsBuilder); var logProvider = new LogProvider(); var pluginManager = new PluginManager(logProvider, directoryProvider, sqliteProvider); pluginManager.Register <StandalonePlugin>(new StandalonePluginImpl()); Assert.NotEmpty(pluginManager.Get <StandalonePlugin>()); Assert.NotNull(pluginManager.Get <StandalonePlugin>("TestPlugin")); }