Esempio n. 1
0
        public void AssemblyComposer_InvalidBruteforceComposeTest()
        {
            var appDataDirectory = new DirectoryInfo(Path.GetTempPath())
                                   .CreateSubdirectory(Guid.NewGuid().ToString());
            var moduleDirectory = appDataDirectory.CreateSubdirectory("modules");

            Stream composableAssemblyZipStream =
                TestUtilities.GetResource("Loader.Snowflake.Framework.Tests.InvalidComposable.zip");
            ZipArchive archive = new ZipArchive(composableAssemblyZipStream);

            archive.ExtractToDirectory(moduleDirectory.CreateSubdirectory("Snowflake.Framework.Tests").FullName);
            var container = new ServiceContainer(appDataDirectory.FullName, "http://localhost:9797");

            var module = container.Get <IModuleEnumerator>()
                         .Modules.FirstOrDefault(m => m.Entry == "Snowflake.Framework.Tests.InvalidComposable.dll");

            Assert.NotNull(module);

            var assemblyComposer = new AssemblyComposer(container, container.Get <IModuleEnumerator>());

            assemblyComposer.Compose();
            Assert.Null(container.Get <IInvalidService>());

            var invalidComposable = new InvalidDummyServiceComposable();

            Assert.Throws <InvalidOperationException>(() =>
            {
                invalidComposable.Compose(module,
                                          new ServiceProvider(container, new List <string>()
                {
                    typeof(IServiceRegistrationProvider).FullName
                }));
            });
        }
Esempio n. 2
0
        public void StartCore()
        {
            this.loadedCore = new ServiceContainer(this.appDataDirectory);
            var loader   = this.loadedCore.Get <IModuleEnumerator>();
            var composer = new AssemblyComposer(this.loadedCore, loader);

            composer.Compose();
        }
Esempio n. 3
0
        public void AssemblyComposer_InvalidComposeTest()
        {
            var appDataDirectory = new DirectoryInfo(Path.GetTempPath())
                                   .CreateSubdirectory(Guid.NewGuid().ToString());
            var moduleDirectory = appDataDirectory.CreateSubdirectory("modules");

            Stream composableAssemblyZipStream =
                TestUtilities.GetResource("Loader.Snowflake.Framework.Tests.InvalidComposable.zip");
            ZipArchive archive = new ZipArchive(composableAssemblyZipStream);

            archive.ExtractToDirectory(moduleDirectory.CreateSubdirectory("Snowflake.Framework.Tests").FullName);
            var container = new ServiceContainer(appDataDirectory.FullName, "https://localhost:9797");

            Assert.Contains(container.Get <IModuleEnumerator>()
                            .Modules, m => m.Entry == "Snowflake.Framework.Tests.InvalidComposable.dll");

            var assemblyComposer = new AssemblyComposer(container, container.Get <IModuleEnumerator>());

            assemblyComposer.Compose();
            Assert.Null(container.Get <IInvalidService>());
        }