コード例 #1
0
        public void CreateAssemblyStoreShouldFindTypesInAssembly()
        {
            // Given a store for MyExportType
            ExtensionStore store = ExtensionStore.CreateAssemblyStore <MyExportType>(GetType().GetTypeInfo().Assembly);

            // Then should get any export for this type and subtypes
            Assert.Equal(2, store.GetExports <MyExportType>().Count());

            // But for a different type, expect throw as the store only contains MyExportType
            Assert.Throws <InvalidCastException>(() => store.GetExports <MyOtherType>().Count());
        }
コード例 #2
0
        public void CreateDefaultLoaderShouldFindTypesOnlyInMainAssembly()
        {
            // Given a store created using CreateDefaultLoader
            // Then not should find exports from a different assembly
            ExtensionStore store = ExtensionStore.CreateDefaultLoader <MyExportType>();

            Assert.Equal(0, store.GetExports <MyExportType>().Count());

            // And should not find exports that are defined in the ServiceLayer assembly
            store = ExtensionStore.CreateDefaultLoader <ASTNodeFormatterFactory>();
            Assert.Empty(store.GetExports <ASTNodeFormatterFactory>());
        }
コード例 #3
0
        // [Fact]
        public void CreateStoreForCurrentDirectoryShouldFindExportsInDirectory()
        {
            // Given stores created for types in different assemblies
            ExtensionStore myStore      = ExtensionStore.CreateStoreForCurrentDirectory <MyExportType>();
            ExtensionStore querierStore = ExtensionStore.CreateStoreForCurrentDirectory <ASTNodeFormatterFactory>();

            // When I query exports
            // Then exports for all assemblies should be found
            Assert.Equal(2, myStore.GetExports <MyExportType>().Count());
            Assert.NotEmpty(querierStore.GetExports <ASTNodeFormatterFactory>());
        }