예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FrmCalculator"/> class.
        /// </summary>
        public FrmCalculator()
        {
            this.InitializeComponent();
            this.calculator = new AdvancedCalculator();

            this.toolStripMenuItemAbout.Click += this.ToolStripMenuItem1_Click;
        }
예제 #2
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("C# Sample Demo App");

            Calculator obj = new Calculator();

            AdvancedCalculator newObj = new AdvancedCalculator();
        }
        /// <summary>
        /// 测试缓冲的自动超时机制
        /// </summary>
        public void TestTimeout()
        {
            PoolListener <AdvancedCalculator> listener = new PoolListener <AdvancedCalculator>();
            AdvancedCalculator obj1 = listener.Acquire();
            string             guid = obj1.Guid;

            // 5000 > timeout
            System.Threading.Thread.Sleep(5000);
            obj1 = listener.Acquire();
            //Assert.AreNotEqual<string>(guid, obj1.Guid);
        }
 public void GivenIHaveANewBasicCalculator(string calculatorName)
 {
     if (calculatorName == "Basic Calculator")
     {
         var instance = new BasicCalculator(); //we let this to IoC container
         ScenarioContext.Current.ScenarioContainer.RegisterInstanceAs(instance, typeof(ICalculator), calculatorName);
     }
     if (calculatorName == "Advanced Calculator")
     {
         var instance = new AdvancedCalculator(); //we let this to IoC container
         ScenarioContext.Current.ScenarioContainer.RegisterInstanceAs(instance, typeof(ICalculator), calculatorName);
     }
 }
        /// <summary>
        /// 测试对象池对具体类型的容量
        /// </summary>
        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);
        }
        /// <summary>
        /// 多类型系统管理
        /// </summary>
        public void TestMultipleTypes()
        {
            // 第一类对象测试,对象池容量是2
            PoolListener <AdvancedCalculator> l1 = new PoolListener <AdvancedCalculator>();
            AdvancedCalculator advanced          = l1.Acquire();
            //Assert.IsNotNull(advanced);

            // 第二类对象测试,对象池容量是2
            PoolListener <SimpleCalculator> l2 = new PoolListener <SimpleCalculator>();
            SimpleCalculator simple            = l2.Acquire();

            simple.Activate();
            //Assert.IsNotNull(simple);
        }
        /// <summary>
        /// 测试对象池的重用机制
        /// </summary>
        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);
        }