Ejemplo n.º 1
0
        public void Test001()
        {
            var disposed = false;
            var created = false;
            using (var ioc = new PerunContainer())
             {
                 IConfiguredPluginInfo<ITestDisposable> regInfo = ioc.RegisterType<ITestDisposable, MockDisposableClass>(ioc);
                 regInfo.AfterBuiltNewComponent+= (sender,args) =>
                                                       {
                                                           created = true;
                                                           args.Component.BeforeDisposeAction =() => disposed = true;
                                                           //((AfterBuiltComponentEventArgs)args).Component = new MockDisposableClass2();
                                                       };
                 var myComponent = ioc.GetService<ITestDisposable>();
                 Assert.IsTrue(created); 
                 regInfo.Dispose();

                 Assert.IsTrue(disposed);
                 Assert.IsFalse(ioc.IsConfiguredFor(typeof(ITestDisposable)));
             }
        }
Ejemplo n.º 2
0
 internal SingletonScope(PerunContainer container)
 {
     _container = container;
 }
Ejemplo n.º 3
0
        public void Test002()
        {
           
            using (var ioc = new PerunContainer())
            {
                ioc.AfterMissedComponent += (sender, args) =>
                                                {
                                                    if (args.RequieredComponentType == typeof(ITestDisposable))
                                                        ioc.RegisterType<ITestDisposable, MockDisposableClass>();
                                                            
                                                };
                
                var myComponent = ioc.GetService<ITestDisposable>();
                Assert.IsNotNull(myComponent);

            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Test, zda pri vyjmuti pluginu dojde k dojde k disposnutí držených instancí.
        /// </summary>
        public virtual void DisposePlugins()
        {
            bool disposed = false;
            using (var ioc = new PerunContainer())
            {

                ioc.RegisterType<ITestDisposable, MockDisposableClass>(ioc); //as singleton /* PerunConatiner implements IPersunScope*/
                var a = ioc.GetService<ITestDisposable>();
                a.BeforeDisposeAction = () => disposed = true;

                Assert.IsTrue(ioc.IsConfiguredFor(typeof(ITestDisposable)));

                ioc.DisposeService(typeof(ITestDisposable));

                Assert.IsTrue(disposed);
                Assert.IsFalse(ioc.IsConfiguredFor(typeof(ITestDisposable)));
            }
        }
Ejemplo n.º 5
0
 public void CircularDependecyTest()
 {
     return;
     using (var ioc = new PerunContainer())
     {
         //subtest1
         ioc.RegisterType<object>(ioc.GetService<object>);
         
         //subtest2
         ioc.RegisterType<MockCircular>();
         var myComponent = ioc.GetService<MockCircular>();
     }
 }
Ejemplo n.º 6
0
        public void Test003()
        {
            bool released = false;
            using (var ioc = new PerunContainer())
            {
                
                ioc.RegisterType<ITestDisposable, MockDisposableClass>(ioc/*=singleton*/)
                    .BeforeReleaseComponent+=(sender,args)=>
                                                 {
                                                     released = true;
                                                     args.RunDispose = true;//but this behavior is default
                                                 };

                var myComponent = ioc.GetService<ITestDisposable>();
            }
            Assert.IsTrue(released);
        }