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);
        }
예제 #2
0
        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>" },
            }
                );
        }