Пример #1
0
        public void SharedZyanComponentFromMefContainer_IsRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // get component registration
                var reg = cat.GetRegistration("UniqueName_MefSample9");
                Assert.IsNotNull(reg);
                Assert.AreEqual(ActivationType.Singleton, reg.ActivationType);

                // get component instance
                var obj = cat.GetComponent("UniqueName_MefSample9") as IMefSample;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample9>(obj);
                Assert.AreNotEqual(0, MefSample9.InstanceCount);

                // make sure component instance is not cleaned up
                cat.CleanUpComponentInstance(reg, obj);
                Assert.AreNotEqual(0, MefSample9.InstanceCount);

                // make sure component instance is not disposed with catalog
                cat.Dispose();
                Assert.AreNotEqual(0, MefSample9.InstanceCount);
            }
        }
Пример #2
0
        public void ZyanComponentWithSharedPolicyAttribute_IsRegisteredAsSingleton()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefCatalog);

                // get component registration
                var reg = cat.GetRegistration("UniqueName_MefSample13");
                Assert.IsNotNull(reg);
                Assert.AreEqual(ActivationType.Singleton, reg.ActivationType);

                // get component instance
                var obj = cat.GetComponent("UniqueName_MefSample13") as IMefSample;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample13>(obj);
                var ms13 = (MefSample13)obj;
                var guid = ms13.Guid;

                // make sure component instance is not cleaned up
                cat.CleanUpComponentInstance(reg, obj);
                Assert.AreEqual(guid, ms13.Guid);

                // make sure component instance is not disposed with component catalog
                cat.Dispose();
                Assert.AreEqual(guid, ms13.Guid);
            }
        }
Пример #3
0
        public void PrivateInheritedExportFromFromMefContainer_IsNotRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // component is available in MefContainer
                var obj = MefContainer.GetExport <IMefSample6>("UniqueName_MefSample6").Value;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample6>(obj);

                // component is not registered in Zyan ComponentCatalog
                cat.GetRegistration("UniqueName_MefSample6");
            }
        }
Пример #4
0
        public void MixedComponent_IsRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // get component registration
                var reg = cat.GetRegistration("UniqueName_MefSample12");
                Assert.IsNotNull(reg);

                // get component instance
                var obj = cat.GetComponent("UniqueName_MefSample12") as IMefSample12;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample12>(obj);
            }
        }
Пример #5
0
        public void PrivateInheritedExportFromMefCatalog_IsNotRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefCatalog);

                // component is available in MefCatalog
                var id      = new ImportDefinition(def => def.Metadata.ContainsKey("ComponentInterface"), "UniqueName_MefSample6", ImportCardinality.ExactlyOne, false, false);
                var exports = MefCatalog.GetExports(id);
                Assert.IsNotNull(exports);
                Assert.AreEqual(1, exports.Count());

                // component is not registered in Zyan ComponentCatalog
                cat.GetRegistration("UniqueName_MefSample6");
            }
        }
Пример #6
0
        public void PrivateExportedPartFromFromMefContainer_IsNotRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // component is available in MefContainer
                var obj = MefContainer.GetExport <IMefSample>("UniqueName_MefSample4").Value;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample4>(obj);

                // component is not registered in Zyan ComponentCatalog
                Assert.Throws <KeyNotFoundException>(() =>
                                                     cat.GetRegistration("UniqueName_MefSample4"));
            }
        }
Пример #7
0
        public void IObjectSourceFromMefContainer_IsRegisteredAsIs()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // get component registration
                var reg = cat.GetRegistration("UniqueName_MefSample11");
                Assert.IsNotNull(reg);

                // get component instance
                var obj = cat.GetComponent("UniqueName_MefSample11") as IObjectSource;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample11>(obj);
                Assert.AreEqual(1, MefSample11.InstanceCount);

                // clean up component instance
                cat.CleanUpComponentInstance(reg, obj);
                Assert.AreEqual(0, MefSample11.InstanceCount);
            }
        }
Пример #8
0
        public void NamedZyanInterfaceFromMefCatalog_IsRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefCatalog);

                // get component registration
                var reg = cat.GetRegistration("UniqueName_MefSample8");
                Assert.IsNotNull(reg);

                // get component instance
                var obj = cat.GetComponent("UniqueName_MefSample8") as IMefSample8;
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample8>(obj);
                Assert.AreEqual(1, MefSample8.InstanceCount);

                // clean up component instance
                cat.CleanUpComponentInstance(reg, obj);
                Assert.AreEqual(0, MefSample8.InstanceCount);
            }
        }
Пример #9
0
        public void ZyanInterfaceFromFromMefContainer_IsRegistered()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // get component registration
                var reg = cat.GetRegistration(typeof(IMefSample7));
                Assert.IsNotNull(reg);

                // get component instance
                var obj = cat.GetComponent <IMefSample7>();
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample7>(obj);
                Assert.AreEqual(1, MefSample7.InstanceCount);

                // clean up component instance
                cat.CleanUpComponentInstance(reg, obj);
                Assert.AreEqual(0, MefSample7.InstanceCount);
            }
        }
Пример #10
0
        public void ZyanComponentFromMefContainer_IsRegisteredAsSingleCall()
        {
            using (var cat = new ComponentCatalog())
            {
                cat.RegisterComponents(MefContainer);

                // get component registration
                var reg = cat.GetRegistration(typeof(IMefSample));
                Assert.IsNotNull(reg);
                Assert.AreEqual(ActivationType.SingleCall, reg.ActivationType);

                // get component instance
                var obj = cat.GetComponent <IMefSample>();
                Assert.IsNotNull(obj);
                AssertEx.IsInstanceOf <MefSample1>(obj);
                Assert.AreEqual(1, MefSample1.InstanceCount);

                // clean up component instance
                cat.CleanUpComponentInstance(reg, obj);
                Assert.AreEqual(0, MefSample1.InstanceCount);
            }
        }
Пример #11
0
        public void InheritedExportFromFromMefContainer_IsRegistered()
        {
            var cat = new ComponentCatalog();

            cat.RegisterComponents(MefContainer);

            // get component registration
            var reg = cat.GetRegistration("UniqueName_MefSample5");

            Assert.IsNotNull(reg);

            // get component instance
            var obj = cat.GetComponent("UniqueName_MefSample5") as IMefSample5;

            Assert.IsNotNull(obj);
            AssertEx.IsInstanceOf <MefSample5>(obj);
            Assert.AreEqual(1, MefSample5.InstanceCount);

            // clean up component instance
            cat.CleanUpComponentInstance(reg, obj);
            Assert.AreEqual(0, MefSample5.InstanceCount);
        }