public virtual void Test() { var o1 = new object(); var o2 = new object(); var o3 = new object(); IObjectPool pool = new SimpleObjectPool(new[] { o1, o2, o3 }); Assert.AreSame(o1, pool.BorrowObject()); Assert.AreSame(o2, pool.BorrowObject()); Assert.AreSame(o3, pool.BorrowObject()); Assert.Expect(typeof(InvalidOperationException), new _ICodeBlock_20(pool)); pool.ReturnObject(o2); Assert.AreSame(o2, pool.BorrowObject()); }