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.TestBaseObjectPool;
26  
27  /**
28   * @author Rodney Waldhoff
29   * @author Sandy McArthur
30   * @version $Revision: 774099 $ $Date: 2009-05-12 17:29:02 -0400 (Tue, 12 May 2009) $
31   */
32  public class TestSoftReferenceObjectPool extends TestBaseObjectPool {
33      public TestSoftReferenceObjectPool(String testName) {
34          super(testName);
35      }
36  
37      public static Test suite() {
38          return new TestSuite(TestSoftReferenceObjectPool.class);
39      }
40  
41      protected ObjectPool makeEmptyPool(int cap) {
42          return new SoftReferenceObjectPool(
43              new PoolableObjectFactory()  {
44                  int counter = 0;
45                  public Object makeObject() { return String.valueOf(counter++); }
46                  public void destroyObject(Object obj) { }
47                  public boolean validateObject(Object obj) { return true; }
48                  public void activateObject(Object obj) { }
49                  public void passivateObject(Object obj) { }
50              }
51              );
52      }
53  
54      protected ObjectPool makeEmptyPool(final PoolableObjectFactory factory) {
55          return new SoftReferenceObjectPool(factory);
56      }
57  
58      protected Object getNthObject(int n) {
59          return String.valueOf(n);
60      }
61  
62      protected boolean isLifo() {
63          return false;
64      }
65  
66      protected boolean isFifo() {
67          return false;
68      }
69  
70  }