public void ExternalComponentCatalog_IsNotDisposed() { var disposed = false; var server = new ReleasableComponent { Handler = () => disposed = true }; Assert.IsFalse(disposed); var serverSetup = new IpcBinaryServerProtocolSetup("CleanupTest2"); using (var catalog = new ComponentCatalog()) using (var host = new ZyanComponentHost("SampleServer2", serverSetup, new InProcSessionManager(), catalog)) { host.RegisterComponent<ISampleComponent, ReleasableComponent>( server, s => ((ReleasableComponent)s).Release()); Assert.IsFalse(disposed); server.Release(); Assert.IsTrue(disposed); } }
public void OwnedComponentCatalog_IsDisposed() { var disposed = false; var server = new ReleasableComponent { Handler = () => disposed = true }; Assert.IsFalse(disposed); var serverSetup = new IpcBinaryServerProtocolSetup("CleanupTest1"); using (var host = new ZyanComponentHost("SampleServer1", serverSetup)) { host.RegisterComponent <ISampleComponent, ReleasableComponent>( server, s => ((ReleasableComponent)s).Release()); } Assert.IsTrue(disposed); }
public void ExternalComponentCatalog_IsNotDisposed() { var disposed = false; var server = new ReleasableComponent { Handler = () => disposed = true }; Assert.IsFalse(disposed); var serverSetup = new IpcBinaryServerProtocolSetup("CleanupTest2"); using (var catalog = new ComponentCatalog()) using (var host = new ZyanComponentHost("SampleServer2", serverSetup, new InProcSessionManager(), catalog)) { host.RegisterComponent <ISampleComponent, ReleasableComponent>( server, s => ((ReleasableComponent)s).Release()); Assert.IsFalse(disposed); server.Release(); Assert.IsTrue(disposed); } }
public void SingletonComponentRegisteredWithComponentInstance_IsCleanedUp() { // this component instance is created outside, but the ownership // is transferred to the ComponentCatalog via cleanup delegate var disposed = false; var mortalServer = new ReleasableComponent { Handler = () => disposed = true }; var cat = new ComponentCatalog(); cat.RegisterComponent <ISampleComponent, ReleasableComponent>(mortalServer, v => ((ReleasableComponent)v).Release()); Assert.IsFalse(disposed); var instance = cat.GetComponent <ISampleComponent>(); AssertEx.IsInstanceOf <ReleasableComponent>(instance); var reg = cat.GetRegistration(typeof(ISampleComponent)); cat.CleanUpComponentInstance(reg, instance); Assert.IsTrue(disposed); }
public void OwnedComponentCatalog_IsDisposed() { var disposed = false; var server = new ReleasableComponent { Handler = () => disposed = true }; Assert.IsFalse(disposed); var serverSetup = new IpcBinaryServerProtocolSetup("CleanupTest1"); using (var host = new ZyanComponentHost("SampleServer1", serverSetup)) { host.RegisterComponent<ISampleComponent, ReleasableComponent>( server, s => ((ReleasableComponent)s).Release()); } Assert.IsTrue(disposed); }
public void SingletonComponentRegisteredWithComponentInstance_IsCleanedUp() { // this component instance is created outside, but the ownership // is transferred to the ComponentCatalog via cleanup delegate var disposed = false; var mortalServer = new ReleasableComponent { Handler = () => disposed = true }; var cat = new ComponentCatalog(); cat.RegisterComponent<ISampleComponent, ReleasableComponent>(mortalServer, v => ((ReleasableComponent)v).Release()); Assert.IsFalse(disposed); var instance = cat.GetComponent<ISampleComponent>(); AssertEx.IsInstanceOf<ReleasableComponent>(instance); var reg = cat.GetRegistration(typeof(ISampleComponent)); cat.CleanUpComponentInstance(reg, instance); Assert.IsTrue(disposed); }