コード例 #1
0
        public void TestAddAssembly1()
        {
            using (var packer = PluginPacker.Create(_fname))
            {
                var builder = new AbstractPluginTest.PluginBuilder("Simon", "Foo", "Plugin");
                builder.AssemblyVersion              = "4.0.3.1";
                builder.AssemblyFileVersion          = "1.2.3.42";
                builder.AssemblyInformationalVersion = "4.0.0.0-beta";
                builder.Save();
                packer.AddPluginAssembly(builder.FileName);
            }

            using (var reader = PluginArchive.OpenRead(_fname))
            {
                var index = reader.Index;
                index.Should().NotBeNull();
                index.Name.Should().Be("Plugin");
                index.Assemblies.Should().NotBeNull();
                index.Assemblies.Should().HaveCount(1);
                index.Assemblies[0].EntryName.Should().Be("Plugin.dll");
                index.Assemblies[0].AssemblyName.Should().Be("Plugin");
                index.Assemblies[0].AssemblyVersion.Should().Be(new Version(4, 0, 3, 1));
                index.Assemblies[0].AssemblyFileVersion.Should().Be(new Version(1, 2, 3, 42));
                index.Assemblies[0].AssemblyInformationalVersion.Should().Be("4.0.0.0-beta");
                index.NativeImages.Should().NotBeNull();
                index.NativeImages.Should().HaveCount(0);

                var actualAssembly = reader.LoadAssembly("Plugin.dll");
                actualAssembly.Should().NotBeNull();
            }
        }
コード例 #2
0
        public void TestAddNativeImage1()
        {
            using (var packer = PluginPacker.Create(_fname))
            {
                var builder = new AbstractPluginTest.PluginBuilder("Simon", "Foo", "Plugin");
                builder.Save();
                packer.AddPluginAssembly(builder.FileName);

                var fname = Path.Combine(_testData, "Native", "x86", "NativeImage.dll");
                packer.AddFile("NativeImage.dll", fname);
            }

            using (var reader = PluginArchive.OpenRead(_fname))
            {
                var index = reader.Index;
                index.Should().NotBeNull();
                index.Assemblies.Should().NotBeNull();
                index.Assemblies.Should().HaveCount(1);

                index.NativeImages.Should().NotBeNull();
                index.NativeImages.Count.Should().Be(1);
                index.NativeImages[0].EntryName.Should().Be("NativeImage.dll");
                index.NativeImages[0].ImageName.Should().Be("NativeImage");
            }
        }
コード例 #3
0
        public void TestAddAssembly5()
        {
            using (var packer = PluginPacker.Create(_fname))
            {
                var builder = new AbstractPluginTest.PluginBuilder("Kittyfisto", "MyPlugin", "My First Plugin");
                builder.PluginVersion = new Version(1, 4, 12034);
                builder.ImplementInterface <IFileFormatPlugin>("Plugin.FileFormatPlugin");
                builder.Save();

                packer.AddPluginAssembly(builder.FileName);
            }

            using (var reader = PluginArchive.OpenRead(_fname))
            {
                var index = reader.Index;
                index.Version.Should().NotBeNull();
                index.Id.Should().Be("Kittyfisto.MyPlugin");
                index.Name.Should().Be("My First Plugin");
                index.Version.Should().Be(new Version(1, 4, 12034));
            }
        }
コード例 #4
0
        public void TestLoadAssembly1()
        {
            using (var stream = new MemoryStream())
            {
                using (var packer = PluginPacker.Create(stream, true))
                {
                    var builder = new AbstractPluginTest.PluginBuilder("Foo1", "Foo1", "Simon", "None of your business", "Get of my lawn");
                    builder.ImplementInterface <IFileFormatPlugin>("Foo1.MyAwesomePlugin");
                    builder.Save();
                    packer.AddPluginAssembly(builder.FileName);
                }

                stream.Position = 0;

                using (var reader = PluginArchive.OpenRead(stream))
                {
                    var assembly = reader.LoadAssembly("Plugin.dll");
                    assembly.Should().NotBeNull();
                    reader.LoadAssembly("Plugin.dll").Should().BeSameAs(assembly, "because LoadAssembly should return the very same assembly every time");
                }
            }
        }