public void TestCapacity()
        {
            PoolListener <AdvancedCalculator> listener = new PoolListener <AdvancedCalculator>();
            AdvancedCalculator obj1 = listener.Acquire();

            obj1.Activate();
            Assert.IsNotNull(obj1);
            AdvancedCalculator obj2 = listener.Acquire();

            obj2.Activate();
            Assert.IsNotNull(obj2);
            AdvancedCalculator obj3 = listener.Acquire();   // 满了,无法继续申请

            Assert.IsNull(obj3);
        }
        public void TestResue()
        {
            PoolListener <AdvancedCalculator> listener = new PoolListener <AdvancedCalculator>();
            AdvancedCalculator obj1 = listener.Acquire();

            obj1.Activate();
            AdvancedCalculator obj2 = listener.Acquire();

            obj2.Activate();
            obj1.Deactivate();
            AdvancedCalculator obj3 = listener.Acquire();

            obj3.Activate();
            Assert.IsNotNull(obj3);
            Assert.AreEqual <string>(obj1.Guid, obj3.Guid);
            Assert.AreEqual <int>(obj3.Multiple(2, 2), 2 * 2);
        }