View Javadoc
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.dbcp2;
19  
20  import static org.junit.jupiter.api.Assertions.assertNull;
21  import static org.junit.jupiter.api.Assertions.assertTrue;
22  
23  import java.lang.management.ManagementFactory;
24  
25  import javax.management.JMX;
26  import javax.management.MBeanServer;
27  import javax.management.ObjectName;
28  import javax.management.OperationsException;
29  
30  import org.junit.jupiter.api.Test;
31  
32  /**
33   * Tests for BasicDataSourceMXBean.
34   */
35  public class TestBasicDataSourceMXBean {
36  
37      public static void testMXBeanCompliance(final Class<?> clazz) throws OperationsException {
38          assertTrue(JMX.isMXBeanInterface(clazz));
39          final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
40          final ObjectName objectName = ObjectName.getInstance("com.sun.management:type=DiagnosticCommand");
41          JMX.newMBeanProxy(server, objectName, clazz, true);
42      }
43  
44      private final BasicDataSourceMXBean bean = new BasicDataSourceMXBean() {
45  
46          @Override
47          public boolean getAbandonedUsageTracking() {
48              return false;
49          }
50  
51          @Override
52          public boolean getCacheState() {
53              return false;
54          }
55  
56          @Override
57          public String[] getConnectionInitSqlsAsArray() {
58              return null;
59          }
60  
61          @Override
62          public Boolean getDefaultAutoCommit() {
63              return null;
64          }
65  
66          @Override
67          public String getDefaultCatalog() {
68              return null;
69          }
70  
71          @Override
72          public Boolean getDefaultReadOnly() {
73              return null;
74          }
75  
76          @Override
77          public int getDefaultTransactionIsolation() {
78              return 0;
79          }
80  
81          @Override
82          public String[] getDisconnectionSqlCodesAsArray() {
83              return null;
84          }
85  
86          @Override
87          public String getDriverClassName() {
88              return null;
89          }
90  
91          @Override
92          public boolean getFastFailValidation() {
93              return false;
94          }
95  
96          @Override
97          public int getInitialSize() {
98              return 0;
99          }
100 
101         @Override
102         public boolean getLifo() {
103             return false;
104         }
105 
106         @Override
107         public boolean getLogAbandoned() {
108             return false;
109         }
110 
111         @Override
112         public boolean getLogExpiredConnections() {
113             return false;
114         }
115 
116         @Override
117         public long getMaxConnLifetimeMillis() {
118             return 0;
119         }
120 
121         @Override
122         public int getMaxIdle() {
123             return 0;
124         }
125 
126         @Override
127         public int getMaxOpenPreparedStatements() {
128             return 0;
129         }
130 
131         @Override
132         public int getMaxTotal() {
133             return 0;
134         }
135 
136         @Override
137         public long getMaxWaitMillis() {
138             return 0;
139         }
140 
141         @Override
142         public long getMinEvictableIdleTimeMillis() {
143             return 0;
144         }
145 
146         @Override
147         public int getMinIdle() {
148             return 0;
149         }
150 
151         @Override
152         public int getNumActive() {
153             return 0;
154         }
155 
156         @Override
157         public int getNumIdle() {
158             return 0;
159         }
160 
161         @Override
162         public int getNumTestsPerEvictionRun() {
163             return 0;
164         }
165 
166         @Override
167         public String getPassword() {
168             return null;
169         }
170 
171         @Override
172         public boolean getRemoveAbandonedOnBorrow() {
173             return false;
174         }
175 
176         @Override
177         public boolean getRemoveAbandonedOnMaintenance() {
178             return false;
179         }
180 
181         @Override
182         public int getRemoveAbandonedTimeout() {
183             return 0;
184         }
185 
186         @Override
187         public long getSoftMinEvictableIdleTimeMillis() {
188             return 0;
189         }
190 
191         @Override
192         public boolean getTestOnBorrow() {
193             return false;
194         }
195 
196         @Override
197         public boolean getTestOnCreate() {
198             return false;
199         }
200 
201         @Override
202         public boolean getTestWhileIdle() {
203             return false;
204         }
205 
206         @Override
207         public long getTimeBetweenEvictionRunsMillis() {
208             return 0;
209         }
210 
211         @Override
212         public String getUrl() {
213             return null;
214         }
215 
216         @Override
217         public String getUsername() {
218             return null;
219         }
220 
221         @Override
222         public String getValidationQuery() {
223             return null;
224         }
225 
226         @Override
227         public int getValidationQueryTimeout() {
228             return 0;
229         }
230 
231         @Override
232         public boolean isAccessToUnderlyingConnectionAllowed() {
233             return false;
234         }
235 
236         @Override
237         public boolean isClearStatementPoolOnReturn() {
238             return false;
239         }
240 
241         @Override
242         public boolean isClosed() {
243             return false;
244         }
245 
246         @Override
247         public boolean isPoolPreparedStatements() {
248             return false;
249         }
250     };
251 
252     /**
253      * Tests the interface defined default method.
254      */
255     @Test
256     public void testDefaultSchema() {
257         assertNull(bean.getDefaultSchema());
258     }
259 
260     /**
261      * Tests if the {@link BasicDataSourceMXBean} interface is a valid MXBean interface.
262      */
263     @Test
264     public void testMXBeanCompliance() throws OperationsException {
265         testMXBeanCompliance(BasicDataSourceMXBean.class);
266     }
267 }