private CloudDriveFactory InitializeCloudDriveFactory(string libPath) { CompositionInitializer.Preload(typeof(CloudFS.Interface.Composition.ICloudGateway)); CompositionInitializer.Initialize(new[] { typeof(Program).Assembly }, libPath, "IgorSoft.CloudFS.Gateways.*.dll"); var factory = new CloudDriveFactory(); CompositionInitializer.SatisfyImports(factory); return(factory); }
public void CompositionInitializer_SatisfyImports_Succeeds() { CompositionInitializer.Initialize(new[] { typeof(CompositionInitializerTests).Assembly }); var composablePart = Fixture.GetComposablePart(); CompositionInitializer.SatisfyImports(composablePart); Assert.IsNotNull(composablePart.Component, "Composition of component failed"); }
public void CompositionInitializer_InitializeByAssemblies_WhereAssembliesAreSpecified_Succeeds() { var onHostInitializedHandled = false; EventHandler hostInitializedHandler = (s, e) => onHostInitializedHandled = true; CompositionInitializer.HostInitialized += hostInitializedHandler; try { CompositionInitializer.Initialize(new[] { typeof(CompositionInitializerTests).Assembly }); } finally { CompositionInitializer.HostInitialized -= hostInitializedHandler; } Assert.IsTrue(onHostInitializedHandled, "HostInitialized event not handled"); }
public void CompositionInitializer_InitializeByPath_WherePathIsSpecifiedWithoutSearchPattern_Succeeds() { var onHostInitializedHandled = false; EventHandler hostInitializedHandler = (s, e) => onHostInitializedHandled = true; CompositionInitializer.HostInitialized += hostInitializedHandler; try { CompositionInitializer.Initialize("."); } finally { CompositionInitializer.HostInitialized -= hostInitializedHandler; } Assert.IsTrue(onHostInitializedHandled, "HostInitialized event not handled"); }
public void CompositionInitializer_InitializeByAssemblies_MoreThanOnce_Throws() { var onHostInitializedHandled = false; EventHandler hostInitializedHandler = (s, e) => onHostInitializedHandled = true; CompositionInitializer.HostInitialized += hostInitializedHandler; try { CompositionInitializer.Initialize(Enumerable.Empty <Assembly>()); } finally { CompositionInitializer.HostInitialized -= hostInitializedHandler; } Assert.IsTrue(onHostInitializedHandled, "HostInitialized event not handled"); CompositionInitializer.Initialize(Enumerable.Empty <Assembly>()); }
public void CompositionInitializer_InitializeByPath_MoreThanOnce_Throws() { var onHostInitializedHandled = false; EventHandler hostInitializedHandler = (s, e) => onHostInitializedHandled = true; CompositionInitializer.HostInitialized += hostInitializedHandler; try { CompositionInitializer.Initialize(".", "Missing.dll"); } finally { CompositionInitializer.HostInitialized -= hostInitializedHandler; } Assert.IsTrue(onHostInitializedHandled, "HostInitialized event not handled"); CompositionInitializer.Initialize(".", "Missing.dll"); }
internal static void Main(string[] args) { var mountSection = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).Sections[MountSection.Name] as MountSection; if (mountSection == null) { throw new ConfigurationErrorsException("Mount configuration missing"); } CompositionInitializer.Preload(typeof(IgorSoft.CloudFS.Interface.Composition.ICloudGateway)); CompositionInitializer.Initialize(mountSection.LibPath, "IgorSoft.CloudFS.Gateways.*.dll"); var factory = new CloudDriveFactory(); CompositionInitializer.SatisfyImports(factory); try { var logger = new LogFactory().GetCurrentClassLogger(); using (var tokenSource = new CancellationTokenSource()) { var tasks = new List <Task>(); foreach (var drive in mountSection.Drives.Cast <DriveElement>()) { var operations = new CloudOperations(factory.CreateCloudDrive(drive.Schema, drive.UserName, drive.Root, new CloudDriveParameters() { EncryptionKey = drive.EncryptionKey, Parameters = drive.GetParameters() }), logger); // HACK: handle non-unique parameter set of DokanOperations.Mount() by explicitely specifying AllocationUnitSize and SectorSize tasks.Add(Task.Run(() => operations.Mount(drive.Root, DokanOptions.RemovableDrive | DokanOptions.MountManager | DokanOptions.CurrentSession, mountSection.Threads, 1100, TimeSpan.FromSeconds(drive.Timeout != 0 ? drive.Timeout : 20), null, 512, 512), tokenSource.Token)); var driveInfo = new DriveInfo(drive.Root); while (!driveInfo.IsReady) { Thread.Sleep(10); } } Console.ReadKey(true); tokenSource.Cancel(); } } finally { foreach (var drive in mountSection.Drives.Cast <DriveElement>()) { Dokan.Unmount(drive.Root[0]); } } }
public void CompositionInitializer_InitializeByPathAndAssemblies_Succeeds() { var onHostInitializedHandled = false; EventHandler hostInitializedHandler = (s, e) => onHostInitializedHandled = true; CompositionInitializer.HostInitialized += hostInitializedHandler; try { CompositionInitializer.Initialize(Enumerable.Empty <Assembly>(), ".", "Missing.dll"); } finally { CompositionInitializer.HostInitialized -= hostInitializedHandler; } Assert.IsTrue(onHostInitializedHandled, "HostInitialized event not handled"); }
public static void ResetComposition() { typeof(CompositionInitializer).GetField("host", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic).SetValue(null, null); CompositionInitializer.Initialize(new[] { typeof(AsyncCloudDriveTests).Assembly }); }
public static void Initialize() { CompositionInitializer.Preload(typeof(ICloudGateway)); CompositionInitializer.Initialize(COMPOSITION_DIRECTORY); }
public void CompositionInitializer_InitializeByPath_WherePathIsNull_Throws() { CompositionInitializer.Initialize(null, null); }
public void CompositionInitializer_InitializeByAssemblies_WhereAssembliesAreNull_Throws() { CompositionInitializer.Initialize((IEnumerable <Assembly>)null); }