Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
                }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }