mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
517 lines
24 KiB
Java
517 lines
24 KiB
Java
/*
|
|
* Copyright 1999-2011 Alibaba Group Holding Ltd.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
package com.alibaba.druid.bvt.stat;
|
|
|
|
import static org.hamcrest.CoreMatchers.equalTo;
|
|
import static org.hamcrest.CoreMatchers.is;
|
|
import static org.hamcrest.CoreMatchers.not;
|
|
import static org.hamcrest.CoreMatchers.nullValue;
|
|
import static org.junit.Assert.assertThat;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import junit.framework.Assert;
|
|
import junit.framework.TestCase;
|
|
|
|
import org.springframework.context.ApplicationContext;
|
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
|
import org.springframework.mock.web.MockFilterChain;
|
|
import org.springframework.mock.web.MockFilterConfig;
|
|
import org.springframework.mock.web.MockHttpServletRequest;
|
|
import org.springframework.mock.web.MockHttpServletResponse;
|
|
import org.springframework.mock.web.MockHttpSession;
|
|
import org.springframework.mock.web.MockServletContext;
|
|
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
|
import com.alibaba.druid.stat.DruidStatService;
|
|
import com.alibaba.druid.stat.spring.UserService;
|
|
import com.alibaba.druid.support.http.WebStatFilter;
|
|
import com.alibaba.druid.support.json.JSONUtils;
|
|
import com.alibaba.druid.util.JdbcUtils;
|
|
|
|
public class DruidStatServiceTest extends TestCase {
|
|
|
|
private DruidDataSource dataSource;
|
|
|
|
protected void setUp() throws Exception {
|
|
// DruidStatService is singleton, reset all for other testcase.
|
|
DruidStatService.getInstance().service("/reset-all.json");
|
|
|
|
dataSource = new DruidDataSource();
|
|
|
|
dataSource.setUrl("jdbc:mock:xxx");
|
|
dataSource.setFilters("stat");
|
|
dataSource.setTestOnBorrow(false);
|
|
|
|
dataSource.init();
|
|
}
|
|
|
|
protected void tearDown() throws Exception {
|
|
JdbcUtils.close(dataSource);
|
|
}
|
|
|
|
public void test_statService_getSqlList() throws Exception {
|
|
String sql = "select 1";
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
stmt.close();
|
|
|
|
conn.close();
|
|
|
|
String result = DruidStatService.getInstance().service("/sql.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
|
|
List<Map<String, Object>> sqlList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
|
|
Assert.assertEquals(1, sqlList.size());
|
|
|
|
Map<String, Object> sqlStat = sqlList.get(0);
|
|
|
|
Assert.assertEquals(0, sqlStat.get("RunningCount"));
|
|
Assert.assertEquals(1, sqlStat.get("ExecuteCount"));
|
|
Assert.assertEquals(1, sqlStat.get("FetchRowCount"));
|
|
Assert.assertEquals(0, sqlStat.get("EffectedRowCount"));
|
|
}
|
|
|
|
public void test_statService_getSqlById() throws Exception {
|
|
String sql = "select 1";
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
stmt.close();
|
|
|
|
conn.close();
|
|
|
|
String result = DruidStatService.getInstance().service("/sql-"
|
|
+ dataSource.getSqlStatMap().values().iterator().next().getId()
|
|
+ ".json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
|
|
Map<String, Object> sqlStat = (Map<String, Object>) resultMap.get("Content");
|
|
|
|
Assert.assertEquals(0, sqlStat.get("RunningCount"));
|
|
Assert.assertEquals(1, sqlStat.get("ExecuteCount"));
|
|
Assert.assertEquals(1, sqlStat.get("FetchRowCount"));
|
|
Assert.assertEquals(0, sqlStat.get("EffectedRowCount"));
|
|
|
|
String result2 = DruidStatService.getInstance().service("/sql-" + Integer.MAX_VALUE + ".json");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result2);
|
|
Assert.assertNull(resultMap.get("Content"));
|
|
}
|
|
|
|
public void test_statService_getDataSourceList() throws Exception {
|
|
String sql = "select 1";
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
stmt.close();
|
|
|
|
conn.close();
|
|
|
|
String result = DruidStatService.getInstance().service("/datasource.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
|
|
List<Map<String, Object>> dataSourceList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
|
|
Assert.assertEquals(1, dataSourceList.size());
|
|
|
|
Map<String, Object> dataSourceStat = dataSourceList.get(0);
|
|
|
|
Assert.assertEquals(1, dataSourceStat.get("PoolingCount"));
|
|
Assert.assertEquals(0, dataSourceStat.get("ActiveCount"));
|
|
}
|
|
|
|
public void test_statService_getDataSourceIdList() throws Exception {
|
|
String sql = "select 1";
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
stmt.close();
|
|
conn.close();
|
|
|
|
String result = DruidStatService.getInstance().service("/datasource.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<Map<String, Object>> dataSourceList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
Map<String, Object> dataSourceStat = dataSourceList.get(0);
|
|
assertThat(dataSourceStat, is(not(nullValue())));
|
|
int id = (Integer) dataSourceStat.get("Identity");
|
|
|
|
String resultId = DruidStatService.getInstance().service("/datasource-" + id + ".json");
|
|
Map<String, Object> resultIdMap = (Map<String, Object>) JSONUtils.parse(resultId);
|
|
Map<String, Object> dataSourceIdStat = (Map<String, Object>) resultIdMap.get("Content");
|
|
assertThat((Integer) dataSourceIdStat.get("PoolingCount"), equalTo(1));
|
|
}
|
|
|
|
/**
|
|
* Test basic.json request
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
public void test_statService_getBasic() throws Exception {
|
|
String result = DruidStatService.getInstance().service("/basic.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
Map<String, Object> contentMap = (Map<String, Object>) resultMap.get("Content");
|
|
|
|
assertThat(contentMap.get("Version"), is(not(nullValue())));
|
|
assertThat(contentMap.get("Drivers"), is(not(nullValue())));
|
|
assertThat((Boolean) contentMap.get("ResetEnable"), is(true));
|
|
}
|
|
|
|
public void test_statService_getActiveConnectionStackTrace() throws Exception {
|
|
String sql = "select 1";
|
|
dataSource.setRemoveAbandoned(true);// initiative close connection.
|
|
dataSource.setRemoveAbandonedTimeout(Integer.MAX_VALUE);
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
|
|
String result = DruidStatService.getInstance().service("/activeConnectionStackTrace.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<String> contentList = (List<String>) resultMap.get("Content");
|
|
|
|
assertThat(contentList.get(0), is(not(nullValue())));
|
|
// close connection at last.
|
|
stmt.close();
|
|
conn.close();
|
|
}
|
|
|
|
public void test_statService_getActiveConnectionStackTraceId() throws Exception {
|
|
String sql = "select 1";
|
|
dataSource.setRemoveAbandoned(true);
|
|
dataSource.setRemoveAbandonedTimeout(Integer.MAX_VALUE);
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
// get data source.
|
|
String dsResult = DruidStatService.getInstance().service("/datasource.json");
|
|
Map<String, Object> dsResultMap = (Map<String, Object>) JSONUtils.parse(dsResult);
|
|
List<Map<String, Object>> dataSourceList = (List<Map<String, Object>>) dsResultMap.get("Content");
|
|
Map<String, Object> dataSourceStat = dataSourceList.get(0);
|
|
assertThat(dataSourceStat, is(not(nullValue())));
|
|
// get data source id.
|
|
int id = (Integer) dataSourceStat.get("Identity");
|
|
|
|
String result = DruidStatService.getInstance().service("/activeConnectionStackTrace-" + id + ".json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<String> contentList = (List<String>) resultMap.get("Content");
|
|
|
|
assertThat(contentList.get(0), is(not(nullValue())));
|
|
stmt.close();
|
|
conn.close();
|
|
}
|
|
|
|
public void test_statService_returnJSONActiveConnectionStackTrace() throws Exception {
|
|
String result = DruidStatService.getInstance().service("/activeConnectionStackTrace-1.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
assertThat((Integer) resultMap.get("ResultCode"), equalTo(-1));
|
|
}
|
|
|
|
public void test_statService_getWebURIList() throws Exception {
|
|
String uri = "/";
|
|
MockServletContext servletContext = new MockServletContext();
|
|
MockFilterConfig filterConfig = new MockFilterConfig(servletContext);
|
|
WebStatFilter filter = new WebStatFilter();
|
|
filter.init(filterConfig);
|
|
// first request test
|
|
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
|
MockFilterChain chain = new MockFilterChain();
|
|
filter.doFilter(request, response, chain);
|
|
|
|
String result = DruidStatService.getInstance().service("/weburi.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<Map<String, Object>> webURIList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(webURIList.size(), equalTo(1));
|
|
Map<String, Object> webURI = webURIList.get(0);
|
|
assertThat((String) webURI.get("URI"), equalTo(uri));
|
|
assertThat((Integer) webURI.get("RequestCount"), equalTo(1));
|
|
|
|
// second request test
|
|
MockHttpServletRequest request2 = new MockHttpServletRequest("GET", uri);
|
|
MockHttpServletResponse response2 = new MockHttpServletResponse();
|
|
MockFilterChain chain2 = new MockFilterChain();
|
|
filter.doFilter(request2, response2, chain2);
|
|
|
|
result = DruidStatService.getInstance().service("/weburi.json");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
webURIList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(webURIList.size(), equalTo(1));
|
|
webURI = webURIList.get(0);
|
|
assertThat((String) webURI.get("URI"), equalTo(uri));
|
|
assertThat((Integer) webURI.get("RequestCount"), equalTo(2));
|
|
filter.destroy();
|
|
}
|
|
|
|
public void test_statService_getWebURIById() throws Exception {
|
|
String uri = "/";
|
|
MockServletContext servletContext = new MockServletContext();
|
|
MockFilterConfig filterConfig = new MockFilterConfig(servletContext);
|
|
WebStatFilter filter = new WebStatFilter();
|
|
filter.init(filterConfig);
|
|
// first request test
|
|
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
|
MockFilterChain chain = new MockFilterChain();
|
|
filter.doFilter(request, response, chain);
|
|
|
|
String result = DruidStatService.getInstance().service("/weburi-" + uri + ".json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
Map<String, Object> contentMap = (Map<String, Object>) resultMap.get("Content");
|
|
assertThat((Integer) contentMap.get("RequestCount"), equalTo(1));
|
|
// second request test
|
|
MockHttpServletRequest request2 = new MockHttpServletRequest("GET", uri);
|
|
MockHttpServletResponse response2 = new MockHttpServletResponse();
|
|
MockFilterChain chain2 = new MockFilterChain();
|
|
filter.doFilter(request2, response2, chain2);
|
|
|
|
result = DruidStatService.getInstance().service("/weburi-" + uri + ".json");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
contentMap = (Map<String, Object>) resultMap.get("Content");
|
|
assertThat((Integer) contentMap.get("RequestCount"), equalTo(2));
|
|
filter.destroy();
|
|
}
|
|
|
|
public void test_statService_getWebApp() throws Exception {
|
|
String uri = "/";
|
|
MockServletContext servletContext = new MockServletContext();
|
|
MockFilterConfig filterConfig = new MockFilterConfig(servletContext);
|
|
WebStatFilter filter = new WebStatFilter();
|
|
filter.init(filterConfig);
|
|
// first request test
|
|
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
|
MockFilterChain chain = new MockFilterChain();
|
|
filter.doFilter(request, response, chain);
|
|
|
|
String result = DruidStatService.getInstance().service("/webapp.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<Map<String, Object>> contentList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(contentList.size(), equalTo(1));
|
|
Map<String, Object> contentMap = contentList.get(0);
|
|
assertThat((Integer) contentMap.get("RequestCount"), equalTo(1));
|
|
// second request test
|
|
MockHttpServletRequest request2 = new MockHttpServletRequest("GET", uri);
|
|
MockHttpServletResponse response2 = new MockHttpServletResponse();
|
|
MockFilterChain chain2 = new MockFilterChain();
|
|
filter.doFilter(request2, response2, chain2);
|
|
|
|
result = DruidStatService.getInstance().service("/webapp.json");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
contentList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(contentList.size(), equalTo(1));
|
|
contentMap = contentList.get(0);
|
|
assertThat((Integer) contentMap.get("RequestCount"), equalTo(2));
|
|
filter.destroy();
|
|
}
|
|
|
|
public void test_statService_getWebSession() throws Exception {
|
|
String uri = "/";
|
|
MockServletContext servletContext = new MockServletContext();
|
|
MockFilterConfig filterConfig = new MockFilterConfig(servletContext);
|
|
|
|
WebStatFilter filter = new WebStatFilter();
|
|
filter.init(filterConfig);
|
|
// first request test
|
|
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
|
MockHttpSession session = new MockHttpSession();
|
|
request.setSession(session);
|
|
String sessionId = session.getId();
|
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
|
MockFilterChain chain = new MockFilterChain();
|
|
filter.doFilter(request, response, chain);
|
|
|
|
String result = DruidStatService.getInstance().service("/websession.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<Map<String, Object>> contentList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(contentList.size(), equalTo(1));
|
|
Map<String, Object> contentMap = contentList.get(0);
|
|
assertThat((String) contentMap.get("SESSIONID"), equalTo(sessionId));
|
|
// second request test
|
|
MockHttpServletRequest request2 = new MockHttpServletRequest("GET", uri);
|
|
MockHttpSession session2 = new MockHttpSession();
|
|
request2.setSession(session2);
|
|
String sessionId2 = session2.getId();
|
|
MockHttpServletResponse response2 = new MockHttpServletResponse();
|
|
MockFilterChain chain2 = new MockFilterChain();
|
|
filter.doFilter(request2, response2, chain2);
|
|
|
|
result = DruidStatService.getInstance().service("/websession.json");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
contentList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(contentList.size(), equalTo(2));
|
|
contentMap = contentList.get(1);
|
|
assertThat((String) contentMap.get("SESSIONID"), equalTo(sessionId2));
|
|
filter.destroy();
|
|
}
|
|
|
|
public void test_statService_getSpring() throws Exception {
|
|
ApplicationContext context = new ClassPathXmlApplicationContext(
|
|
"classpath:com/alibaba/druid/stat/spring-config-stat.xml");
|
|
UserService userService = (UserService) context.getBean("userService");
|
|
userService.save();
|
|
String result = DruidStatService.getInstance().service("/spring.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
List<Map<String, Object>> contentList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(contentList.size(), equalTo(1));
|
|
Map<String, Object> contentMap = contentList.get(0);
|
|
assertThat((String) contentMap.get("Class"), is(not(nullValue())));
|
|
assertThat((Integer) contentMap.get("ExecuteCount"), equalTo(1));
|
|
// second test
|
|
userService.save();
|
|
result = DruidStatService.getInstance().service("/spring.json");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
contentList = (List<Map<String, Object>>) resultMap.get("Content");
|
|
assertThat(contentList.size(), equalTo(1));
|
|
contentMap = contentList.get(0);
|
|
assertThat((String) contentMap.get("Class"), is(not(nullValue())));
|
|
assertThat((Integer) contentMap.get("ExecuteCount"), equalTo(2));
|
|
}
|
|
|
|
public void test_statService_getSpringDetail() throws Exception {
|
|
ApplicationContext context = new ClassPathXmlApplicationContext(
|
|
"classpath:com/alibaba/druid/stat/spring-config-stat.xml");
|
|
UserService userService = (UserService) context.getBean("userService");
|
|
userService.save();
|
|
String result = DruidStatService.getInstance().service("/spring-detail.json?class=com.alibaba.druid.stat.spring.UserService&method=save()");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
Map<String, Object> contentMap = (Map<String, Object>) resultMap.get("Content");
|
|
assertThat((Integer) contentMap.get("ExecuteCount"), equalTo(1));
|
|
// second test
|
|
userService.save();
|
|
result = DruidStatService.getInstance().service("/spring-detail.json?class=com.alibaba.druid.stat.spring.UserService&method=save()");
|
|
resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
contentMap = (Map<String, Object>) resultMap.get("Content");
|
|
assertThat((Integer) contentMap.get("ExecuteCount"), equalTo(2));
|
|
}
|
|
|
|
public void test_statService_getResetAll() throws Exception {
|
|
|
|
// data source mock
|
|
String sql = "select 1";
|
|
Connection conn = dataSource.getConnection();
|
|
|
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
|
ResultSet rs = stmt.executeQuery();
|
|
rs.next();
|
|
rs.close();
|
|
stmt.close();
|
|
conn.close();
|
|
|
|
String resultSQL = DruidStatService.getInstance().service("/sql.json");
|
|
Map<String, Object> resultSQLMap = (Map<String, Object>) JSONUtils.parse(resultSQL);
|
|
List<Map<String, Object>> sqlList = (List<Map<String, Object>>) resultSQLMap.get("Content");
|
|
assertThat(sqlList.size(), equalTo(1));
|
|
Map<String, Object> sqlStat = sqlList.get(0);
|
|
assertThat((Integer) sqlStat.get("RunningCount"), equalTo(0));
|
|
// http request mock
|
|
String uri = "/";
|
|
MockServletContext servletContext = new MockServletContext();
|
|
MockFilterConfig filterConfig = new MockFilterConfig(servletContext);
|
|
|
|
WebStatFilter filter = new WebStatFilter();
|
|
filter.init(filterConfig);
|
|
// first request test
|
|
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
|
MockHttpSession session = new MockHttpSession();
|
|
request.setSession(session);
|
|
String sessionId = session.getId();
|
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
|
MockFilterChain chain = new MockFilterChain();
|
|
filter.doFilter(request, response, chain);
|
|
|
|
String resultWebSession = DruidStatService.getInstance().service("/websession.json");
|
|
Map<String, Object> resultWebSessionMap = (Map<String, Object>) JSONUtils.parse(resultWebSession);
|
|
List<Map<String, Object>> contentWebSessionList = (List<Map<String, Object>>) resultWebSessionMap.get("Content");
|
|
assertThat(contentWebSessionList.size(), equalTo(1));
|
|
Map<String, Object> contentWebSessionMap = contentWebSessionList.get(0);
|
|
assertThat((String) contentWebSessionMap.get("SESSIONID"), equalTo(sessionId));
|
|
|
|
// spring mock
|
|
ApplicationContext context = new ClassPathXmlApplicationContext(
|
|
"classpath:com/alibaba/druid/stat/spring-config-stat.xml");
|
|
UserService userService = (UserService) context.getBean("userService");
|
|
userService.save();
|
|
String resultSpring = DruidStatService.getInstance().service("/spring.json");
|
|
Map<String, Object> resultSpringMap = (Map<String, Object>) JSONUtils.parse(resultSpring);
|
|
List<Map<String, Object>> contentSpringList = (List<Map<String, Object>>) resultSpringMap.get("Content");
|
|
assertThat(contentSpringList.size(), equalTo(1));
|
|
Map<String, Object> contentMap = contentSpringList.get(0);
|
|
assertThat((String) contentMap.get("Class"), is(not(nullValue())));
|
|
assertThat((Integer) contentMap.get("ExecuteCount"), equalTo(1));
|
|
// reset all test
|
|
String result = DruidStatService.getInstance().service("/reset-all.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
assertThat(resultMap.get("content"), is(nullValue()));
|
|
// assert sql
|
|
resultSQL = DruidStatService.getInstance().service("/sql.json");
|
|
resultSQLMap = (Map<String, Object>) JSONUtils.parse(resultSQL);
|
|
sqlList = (List<Map<String, Object>>) resultSQLMap.get("Content");
|
|
assertThat(sqlList, is(nullValue()));
|
|
// assert web session
|
|
resultWebSession = DruidStatService.getInstance().service("/websession.json");
|
|
resultWebSessionMap = (Map<String, Object>) JSONUtils.parse(resultWebSession);
|
|
contentWebSessionList = (List<Map<String, Object>>) resultWebSessionMap.get("Content");
|
|
assertThat(contentWebSessionList, is(nullValue()));
|
|
// assert spring
|
|
resultSpring = DruidStatService.getInstance().service("/spring.json");
|
|
resultSpringMap = (Map<String, Object>) JSONUtils.parse(resultSpring);
|
|
contentSpringList = (List<Map<String, Object>>) resultSpringMap.get("Content");
|
|
assertThat(contentSpringList, is(nullValue()));
|
|
}
|
|
|
|
public void test_statService() throws Exception {
|
|
String result = DruidStatService.getInstance().service("/bad.json");
|
|
Map<String, Object> resultMap = (Map<String, Object>) JSONUtils.parse(result);
|
|
assertThat((Integer) resultMap.get("ResultCode"), equalTo(-1));
|
|
}
|
|
|
|
public void test_statService_getParameters() throws Exception {
|
|
String url = "?x=a&y=b";
|
|
Map<String, String> parameters = DruidStatService.getParameters(url);
|
|
assertThat(parameters.get("x"), equalTo("a"));
|
|
assertThat(parameters.get("y"), equalTo("b"));
|
|
url = null;
|
|
parameters = DruidStatService.getParameters(url);
|
|
assertThat(parameters.isEmpty(), is(true));
|
|
url = "/%E4%B8%AD%E6%96%87";
|
|
parameters = DruidStatService.getParameters(url);
|
|
assertThat(parameters.isEmpty(), is(true));
|
|
}
|
|
}
|