MentaContainer

Rev

Rev 139 | Rev 142 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 139 Rev 141
Line 1... Line 1...
1
package org.mentacontainer.impl;
1
package org.mentacontainer.impl;
2
2
3
import junit.framework.Assert;
3
import junit.framework.Assert;
4
4
5
import org.junit.Test;
5
import org.junit.Test;
6
import org.mentacontainer.Interceptor;
-
 
7
import org.mentacontainer.Factory;
-
 
8
import org.mentacontainer.Container;
6
import org.mentacontainer.Container;
-
 
7
import org.mentacontainer.Creator;
-
 
8
import org.mentacontainer.Interceptor;
9
import org.mentacontainer.Scope;
9
import org.mentacontainer.Scope;
10
10
11
public class MentaContainerTest {
11
public class MentaContainerTest {
12
12
13
        @Test
13
        @Test
Line 434... Line 434...
434
               
434
               
435
                // check if conn was also wired...
435
                // check if conn was also wired...
436
               
436
               
437
                Assert.assertNotNull(conn.getMyDep());
437
                Assert.assertNotNull(conn.getMyDep());
438
        }
438
        }
439
       
-
 
440
        private static class SomeObject {
-
 
441
               
-
 
442
                private boolean destroyed = false;
-
 
443
                private boolean created = false;
-
 
444
               
-
 
445
                public void destroyed() { this.destroyed = true; }
-
 
446
               
-
 
447
                public boolean isDestroyed() { return destroyed; }
-
 
448
               
-
 
449
                public void created() { this.created = true; }
-
 
450
               
-
 
451
                public boolean isCreated() { return created; }
-
 
452
        }
-
 
453
       
-
 
454
        private static class SomeFactory implements Factory, Interceptor<SomeObject> {
-
 
455
               
-
 
456
                @Override
-
 
457
                public <T> T getInstance() {
-
 
458
                       
-
 
459
                        return (T) new SomeObject();
-
 
460
                }
-
 
461
               
-
 
462
                @Override
-
 
463
                public Class<? extends Object> getType() {
-
 
464
                       
-
 
465
                        return SomeObject.class;
-
 
466
                }
-
 
467
               
-
 
468
                @Override
-
 
469
                public void onCleared(SomeObject obj) {
-
 
470
                       
-
 
471
                        obj.destroyed();
-
 
472
                }
-
 
473
               
-
 
474
                @Override
-
 
475
                public void onCreated(SomeObject obj) {
-
 
476
                       
-
 
477
                        obj.created();
-
 
478
                }
-
 
479
        }
-
 
480
       
-
 
481
        @Test
-
 
482
        public void testInterceptor() {
-
 
483
               
-
 
484
                Container c = new MentaContainer();
-
 
485
               
-
 
486
                c.ioc("o", new SomeFactory(), Scope.SINGLETON);
-
 
487
               
-
 
488
                SomeObject o = c.get("o");
-
 
489
               
-
 
490
                Assert.assertTrue(o.isCreated());
-
 
491
               
-
 
492
                c.clear(Scope.SINGLETON);
-
 
493
               
-
 
494
                Assert.assertEquals(true, o.isDestroyed());
-
 
495
               
-
 
496
                c.ioc("o", new SomeFactory(), Scope.THREAD);
-
 
497
               
-
 
498
                o = c.get("o");
-
 
499
               
-
 
500
                Assert.assertTrue(o.isCreated());
-
 
501
               
-
 
502
                c.clear(Scope.SINGLETON);
-
 
503
               
-
 
504
                Assert.assertEquals(false, o.isDestroyed());
-
 
505
               
-
 
506
                c.clear(Scope.THREAD);
-
 
507
               
-
 
508
                Assert.assertEquals(true, o.isDestroyed());
-
 
509
               
-
 
510
                c.ioc("o", new SomeFactory(), Scope.NONE);
-
 
511
               
-
 
512
                o = c.get("o");
-
 
513
               
-
 
514
                Assert.assertTrue(o.isCreated());
-
 
515
               
-
 
516
                o = c.clear("o");
-
 
517
               
-
 
518
                Assert.assertNull(o);
-
 
519
               
-
 
520
                c.ioc("o", new SomeFactory(), Scope.THREAD);
-
 
521
               
-
 
522
                o = c.clear("o");
-
 
523
               
-
 
524
                Assert.assertNull(o);
-
 
525
               
-
 
526
                o = c.get("o");
-
 
527
               
-
 
528
                Assert.assertTrue(o.isCreated());
-
 
529
               
-
 
530
                o = c.clear("o");
-
 
531
               
-
 
532
                Assert.assertEquals(true, o.isDestroyed());
-
 
533
        }
-
 
534
       
-
 
535
}
439
}