public void LoadFile_String_ShouldMimicSystem() { var ass = System.Reflection.Assembly.GetExecutingAssembly(); var sut = new AssemblyFactory(); // Act. var res = sut.LoadFile(ass.Location); // Assert. res.FullName.Should().Be(ass.FullName); }
public void CanLoadAndExecute() { var assemblyFactory = new AssemblyFactory(); var plugins = new[] { new { Name = "PluginOne", Framework = "netstandard2.0" }, new{ Name = "PluginTwo", Framework = "net6.0" }, }; var pluginPathFiles = plugins.Select(plugin => pathWrapper.Combine( PathToPlugins(), plugin.Name, "bin", "Debug", plugin.Framework, plugin.Name + ".dll") ); var assemblies = pluginPathFiles.Select(pluginPathFile => assemblyFactory.LoadFile(pluginPathFile)); var sut = PluginHandler.Create(); // Act. sut.Load(assemblies); var res = sut.Execute("a"); // Assert. res .Select(pr => new { pr.Name, Result = pr.Result.ToString() }) .Should() .BeEquivalentTo( new[] { new { Name = "Plugin one", Result = "<data plugin=\"Plugin one\">a</data>" }, new { Name = "Plugin two", Result = "<data plugin=\"Plugin two\">a</data>" }, } ); }