1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.commons.pool.impl;
19  
20  import junit.framework.Test;
21  import junit.framework.TestSuite;
22  
23  import org.apache.commons.pool.ObjectPool;
24  import org.apache.commons.pool.PoolableObjectFactory;
25  import org.apache.commons.pool.TestObjectPool;
26  import org.apache.commons.pool.TestBaseObjectPool;
27  
28  /***
29   * @author Rodney Waldhoff
30   * @author Sandy McArthur
31   * @version $Revision: 480413 $ $Date: 2006-11-28 22:16:05 -0700 (Tue, 28 Nov 2006) $
32   */
33  public class TestSoftReferenceObjectPool extends TestBaseObjectPool {
34      public TestSoftReferenceObjectPool(String testName) {
35          super(testName);
36      }
37  
38      public static Test suite() {
39          return new TestSuite(TestSoftReferenceObjectPool.class);
40      }
41  
42      protected ObjectPool makeEmptyPool(int cap) {
43          return new SoftReferenceObjectPool(
44              new PoolableObjectFactory()  {
45                  int counter = 0;
46                  public Object makeObject() { return String.valueOf(counter++); }
47                  public void destroyObject(Object obj) { }
48                  public boolean validateObject(Object obj) { return true; }
49                  public void activateObject(Object obj) { }
50                  public void passivateObject(Object obj) { }
51              }
52              );
53      }
54  
55      protected ObjectPool makeEmptyPool(final PoolableObjectFactory factory) {
56          return new SoftReferenceObjectPool(factory);
57      }
58  
59      protected Object getNthObject(int n) {
60          return String.valueOf(n);
61      }
62  
63      protected boolean isLifo() {
64          return false;
65      }
66  
67      protected boolean isFifo() {
68          return false;
69      }
70  
71  }