提交 c1d9e900 编写于 作者: Y youyong

modify the cat dashboard

上级 ce01792b
......@@ -77,14 +77,18 @@ public class Model extends AbstractReportModel<Action, Context> {
return m_projectInfo;
}
public String getQueryName() {
return m_queryName;
}
public CrossReport getReport() {
return m_report;
}
public String getServiceSort() {
return m_serviceSort;
}
public void setCallSort(String callSort) {
m_callSort = callSort;
......@@ -102,6 +106,10 @@ public class Model extends AbstractReportModel<Action, Context> {
m_projectInfo = projectInfo;
}
public void setQueryName(String queryName) {
m_queryName = queryName;
}
public void setReport(CrossReport report) {
m_report = report;
}
......@@ -109,13 +117,5 @@ public class Model extends AbstractReportModel<Action, Context> {
public void setServiceSort(String serviceSort) {
m_serviceSort = serviceSort;
}
public String getQueryName() {
return m_queryName;
}
public void setQueryName(String queryName) {
m_queryName = queryName;
}
}
......@@ -59,6 +59,10 @@ public class Payload extends AbstractReportPayload<Action> {
return m_projectName;
}
public String getQueryName() {
return m_queryName;
}
public String getRemoteIp() {
return m_remoteIp;
}
......@@ -84,6 +88,10 @@ public class Payload extends AbstractReportPayload<Action> {
m_projectName = projectName;
}
public void setQueryName(String queryName) {
m_queryName = queryName;
}
public void setRemoteIp(String remoteIp) {
m_remoteIp = remoteIp;
}
......@@ -92,14 +100,6 @@ public class Payload extends AbstractReportPayload<Action> {
m_serviceSort = serviceSort;
}
public String getQueryName() {
return m_queryName;
}
public void setQueryName(String queryName) {
m_queryName = queryName;
}
@Override
public void validate(ActionContext<?> ctx) {
if (m_action == null) {
......
......@@ -99,6 +99,31 @@ public class HostInfo extends BaseVisitor {
return values;
}
public boolean projectContains(String ip, String projectName) {
if(ALL.equalsIgnoreCase(projectName)){
return true;
}
if (ip.indexOf(':') > 0) {
ip = ip.substring(0, ip.indexOf(':'));
}
try {
Hostinfo hostInfo = m_hostInfoDao.findByIp(ip, HostinfoEntity.READSET_FULL);
if (hostInfo != null) {
if(projectName.equalsIgnoreCase(hostInfo.getDomain())){
return true;
}else{
return false;
}
}
} catch (DalException e) {
if(projectName.equals(UNKNOWN_PROJECT)){
return true;
}
}
return false;
}
public HostInfo setCallSortBy(String callSoryBy) {
m_callSortBy = callSoryBy;
return this;
......@@ -109,6 +134,10 @@ public class HostInfo extends BaseVisitor {
return this;
}
public void setHostInfoDao(HostinfoDao hostInfoDao) {
m_hostInfoDao = hostInfoDao;
}
public HostInfo setProjectName(String projectName) {
this.m_projectName = projectName;
return this;
......@@ -123,7 +152,7 @@ public class HostInfo extends BaseVisitor {
public void visitCrossReport(CrossReport crossReport) {
super.visitCrossReport(crossReport);
}
@Override
public void visitLocal(Local local) {
if (m_clientIp.equalsIgnoreCase("All") || m_clientIp.equalsIgnoreCase(local.getId())) {
......@@ -147,34 +176,5 @@ public class HostInfo extends BaseVisitor {
}
}
public boolean projectContains(String ip, String projectName) {
if(ALL.equalsIgnoreCase(projectName)){
return true;
}
if (ip.indexOf(':') > 0) {
ip = ip.substring(0, ip.indexOf(':'));
}
try {
Hostinfo hostInfo = m_hostInfoDao.findByIp(ip, HostinfoEntity.READSET_FULL);
if (hostInfo != null) {
if(projectName.equalsIgnoreCase(hostInfo.getDomain())){
return true;
}else{
return false;
}
}
} catch (DalException e) {
if(projectName.equals(UNKNOWN_PROJECT)){
return true;
}
}
return false;
}
public void setHostInfoDao(HostinfoDao hostInfoDao) {
m_hostInfoDao = hostInfoDao;
}
}
......@@ -87,6 +87,10 @@ public class MethodInfo extends BaseVisitor {
return values;
}
public String getQuery() {
return m_query;
}
public long getReportDuration() {
return m_reportDuration;
}
......@@ -98,6 +102,19 @@ public class MethodInfo extends BaseVisitor {
return values;
}
private boolean isFit(String queryName, String methodName) {
String[] args = queryName.split("\\|");
if (args != null) {
for (String str : args) {
if (str.length() > 0 && methodName.toLowerCase().contains(str.trim().toLowerCase())) {
return true;
}
}
}
return false;
}
public MethodInfo setCallSortBy(String callSoryBy) {
m_callSortBy = callSoryBy;
return this;
......@@ -108,6 +125,11 @@ public class MethodInfo extends BaseVisitor {
return this;
}
public MethodInfo setQuery(String query) {
m_query = query;
return this;
}
public MethodInfo setRemoteIp(String remoteIp) {
m_remoteIp = remoteIp;
return this;
......@@ -118,12 +140,6 @@ public class MethodInfo extends BaseVisitor {
return this;
}
@Override
public void visitType(Type type) {
m_currentType = type.getId();
super.visitType(type);
}
@Override
public void visitCrossReport(CrossReport crossReport) {
super.visitCrossReport(crossReport);
......@@ -136,15 +152,6 @@ public class MethodInfo extends BaseVisitor {
}
}
public String getQuery() {
return m_query;
}
public MethodInfo setQuery(String query) {
m_query = query;
return this;
}
@Override
public void visitName(Name name) {
String role = m_currentRole;
......@@ -166,16 +173,9 @@ public class MethodInfo extends BaseVisitor {
}
}
private boolean isFit(String queryName, String methodName) {
String[] args = queryName.split("\\|");
if (args != null) {
for (String str : args) {
if (str.length() > 0 && methodName.toLowerCase().contains(str.trim().toLowerCase())) {
return true;
}
}
}
return false;
@Override
public void visitType(Type type) {
m_currentType = type.getId();
super.visitType(type);
}
}
......@@ -63,6 +63,10 @@ public class NameDetailInfo {
return m_tps;
}
public String getType() {
return m_type;
}
public void mergeName(Name name) {
m_totalCount += name.getTotalCount();
m_failureCount += name.getFailCount();
......@@ -101,15 +105,11 @@ public class NameDetailInfo {
m_sum = sum;
}
public String getType() {
return m_type;
public void setTotalCount(long totalCount) {
m_totalCount = totalCount;
}
public void setType(String type) {
m_type = type;
}
public void setTotalCount(long totalCount) {
m_totalCount = totalCount;
}
}
......@@ -121,6 +121,10 @@ public class ProjectInfo extends BaseVisitor {
return this;
}
public void setHostInfoDao(HostinfoDao hostInfoDao) {
m_hostInfoDao = hostInfoDao;
}
public ProjectInfo setServiceSortBy(String serviceSortBy) {
m_serviceSortBy = serviceSortBy;
return this;
......@@ -150,8 +154,4 @@ public class ProjectInfo extends BaseVisitor {
}
}
public void setHostInfoDao(HostinfoDao hostInfoDao) {
m_hostInfoDao = hostInfoDao;
}
}
......@@ -45,6 +45,10 @@ public class TypeDetailInfo {
return m_failurePercent;
}
public String getIp() {
return m_ip;
}
public String getProjectName() {
return m_projectName;
}
......@@ -92,6 +96,10 @@ public class TypeDetailInfo {
m_failurePercent = failrePercent;
}
public void setIp(String ip) {
m_ip = ip;
}
public void setSum(double sum) {
m_sum = sum;
}
......@@ -103,13 +111,5 @@ public class TypeDetailInfo {
public void setType(String type) {
m_type = type;
}
public String getIp() {
return m_ip;
}
public void setIp(String ip) {
m_ip = ip;
}
}
package com.dianping.cat.report.page.dashboard;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import javax.servlet.ServletException;
import org.apache.commons.lang.StringUtils;
import com.dianping.cat.consumer.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.entity.EventType;
import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
import com.dianping.cat.consumer.transaction.model.entity.Machine;
import com.dianping.cat.consumer.transaction.model.entity.TransactionName;
import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import com.dianping.cat.consumer.transaction.model.entity.TransactionType;
import com.dianping.cat.report.ReportPage;
......@@ -18,6 +26,9 @@ import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.page.problem.ProblemStatistics;
import com.dianping.cat.report.page.problem.ProblemStatistics.StatusStatistics;
import com.dianping.cat.report.page.problem.ProblemStatistics.TypeStatistics;
import com.google.gson.Gson;
import com.site.lookup.annotation.Inject;
import com.site.web.mvc.PageHandler;
......@@ -26,20 +37,164 @@ import com.site.web.mvc.annotation.OutboundActionMeta;
import com.site.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
@Inject(type = ModelService.class, value = "event")
private ModelService<EventReport> m_eventService;
private Gson m_gson = new Gson();
@Inject
private JspViewer m_jspViewer;
@Inject(type = ModelService.class, value = "event")
private ModelService<EventReport> m_eventService;
@Inject(type = ModelService.class, value = "transaction")
private ModelService<TransactionReport> m_transactionService;
private EventReport getEventHourlyReport(String domain) {
@Inject(type = ModelService.class, value = "problem")
private ModelService<ProblemReport> m_problemService;
private NumberFormat m_format = new DecimalFormat("#0.00");
private static final String COUNT = "Count";
private static final String TIME = "ResponseTime";
private void buildEventReportResult(EventReport eventReport, String ip, String type, String name,
Map<String, String> data) {
com.dianping.cat.consumer.event.model.entity.Machine eventMachine = eventReport.getMachines().get(ip);
if (eventMachine != null) {
if (StringUtils.isEmpty(name) && StringUtils.isEmpty(type)) {
if (eventMachine != null) {
Collection<EventType> types = eventMachine.getTypes().values();
for (EventType eventType : types) {
String id = eventType.getId();
data.put(id + COUNT, String.valueOf(eventType.getTotalCount()));
}
}
} else if (StringUtils.isEmpty(name) && !StringUtils.isEmpty(type)) {
EventType eventType = eventMachine.findType(type);
if (type != null) {
data.put(COUNT, String.valueOf(eventType.getTotalCount()));
}
} else if (!StringUtils.isEmpty(name) && !StringUtils.isEmpty(type)) {
EventType eventType = eventMachine.findType(type);
if (type != null) {
EventName eventName = eventType.findName(name);
if (eventName != null) {
data.put(COUNT, String.valueOf(eventName.getTotalCount()));
}
}
}
}
}
private void buildProblemReportResult(ProblemReport problemReport, String ip, String type, String name,
Map<String, String> data) {
ProblemStatistics problemStatistics = new ProblemStatistics();
if (ip.equals(Payload.ALL)) {
problemStatistics.setAllIp(true);
} else {
problemStatistics.setIp(ip);
}
problemStatistics.visitProblemReport(problemReport);
if (StringUtils.isEmpty(name) && StringUtils.isEmpty(type)) {
Map<String, TypeStatistics> status = problemStatistics.getStatus();
for (Entry<String, TypeStatistics> temp : status.entrySet()) {
String key = temp.getKey();
TypeStatistics value = temp.getValue();
data.put(key + COUNT, String.valueOf(value.getCount()));
}
} else if (StringUtils.isEmpty(name) && !StringUtils.isEmpty(type)) {
Map<String, TypeStatistics> status = problemStatistics.getStatus();
TypeStatistics value = status.get(type);
if (value != null) {
data.put(COUNT, String.valueOf(value.getCount()));
}
} else if (!StringUtils.isEmpty(name) && !StringUtils.isEmpty(type)) {
Map<String, TypeStatistics> status = problemStatistics.getStatus();
TypeStatistics value = status.get(type);
if (value != null) {
StatusStatistics nameValue = value.getStatus().get(name);
if (nameValue != null) {
data.put(COUNT, String.valueOf(nameValue.getCount()));
}
}
}
}
private void buildTransactionReportResult(TransactionReport transactionReport, String ip, String type, String name,
Map<String, String> data) {
Machine transactionMachine = transactionReport.getMachines().get(ip);
if (transactionMachine != null) {
if (StringUtils.isEmpty(name) && StringUtils.isEmpty(type)) {
if (transactionMachine != null) {
Collection<TransactionType> types = transactionMachine.getTypes().values();
for (TransactionType transactionType : types) {
String id = transactionType.getId();
data.put(id + TIME, m_format.format(transactionType.getAvg()));
data.put(id + COUNT, String.valueOf(transactionType.getTotalCount()));
}
}
} else if (StringUtils.isEmpty(name) && !StringUtils.isEmpty(type)) {
TransactionType transactionType = transactionMachine.findType(type);
if (transactionType != null) {
data.put(TIME, m_format.format(transactionType.getAvg()));
data.put(COUNT, String.valueOf(transactionType.getTotalCount()));
}
} else if (!StringUtils.isEmpty(name) && !StringUtils.isEmpty(type)) {
TransactionType transactionType = transactionMachine.findType(type);
if (transactionType != null) {
TransactionName transactionName = transactionType.findName(name);
if (transactionName != null) {
data.put(TIME, m_format.format(transactionName.getAvg()));
data.put(COUNT, String.valueOf(transactionName.getTotalCount()));
}
}
}
}
}
private Map<String, String> getBaseInfoByDomian(String domain, String ip) {
Map<String, String> data = new HashMap<String, String>();
TransactionReport transactionReport = getTransactionHourlyReport(domain, ip, null, null);
Machine transactionMachine = transactionReport.getMachines().get(ip);
if (transactionMachine != null) {
if (transactionMachine != null) {
Collection<TransactionType> types = transactionMachine.getTypes().values();
for (TransactionType type : types) {
String name = type.getId();
data.put(name + TIME, m_format.format(type.getAvg()));
data.put(name + COUNT, m_format.format(type.getTotalCount()));
}
}
}
EventReport eventReport = getEventHourlyReport(domain, ip, null);
com.dianping.cat.consumer.event.model.entity.Machine eventMachine = eventReport.getMachines().get(ip);
if (eventMachine != null) {
long exceptionCount = 0;
EventType exception = eventMachine.findType("Exception");
EventType runtimeException = eventMachine.findType("RuntimeException");
if (exception != null) {
exceptionCount += exception.getTotalCount();
}
if (runtimeException != null) {
exceptionCount += runtimeException.getTotalCount();
}
data.put("Exception", String.valueOf(exceptionCount));
}
return data;
}
private EventReport getEventHourlyReport(String domain, String ip, String type) {
ModelRequest request = new ModelRequest(domain, ModelPeriod.CURRENT) //
.setProperty("ip", "All");
.setProperty("ip", ip);
if (!StringUtils.isEmpty(type)) {
request.setProperty("type", type);
}
if (m_transactionService.isEligable(request)) {
ModelResponse<EventReport> response = m_eventService.invoke(request);
......@@ -50,9 +205,28 @@ public class Handler implements PageHandler<Context> {
}
}
private TransactionReport getTransactionHourlyReport(String domain) {
private ProblemReport getProblemHourlyReport(String domain, String ip) {
ModelRequest request = new ModelRequest(domain, ModelPeriod.CURRENT) //
.setProperty("type", "view");
if (!ip.equals(Payload.ALL)) {
request.setProperty("ip", ip);
}
if (m_transactionService.isEligable(request)) {
ModelResponse<ProblemReport> response = m_problemService.invoke(request);
ProblemReport report = response.getModel();
return report;
} else {
throw new RuntimeException("Internal error: no eligable transaction service registered for " + request + "!");
}
}
private TransactionReport getTransactionHourlyReport(String domain, String ip, String type, String name) {
ModelRequest request = new ModelRequest(domain, ModelPeriod.CURRENT) //
.setProperty("ip", "All");
.setProperty("ip", ip);
if (!StringUtils.isEmpty(name)) {
request.setProperty("type", type);
}
if (m_transactionService.isEligable(request)) {
ModelResponse<TransactionReport> response = m_transactionService.invoke(request);
......@@ -77,47 +251,38 @@ public class Handler implements PageHandler<Context> {
model.setAction(Action.VIEW);
model.setPage(ReportPage.DASHBOARD);
TransactionReport catReport = getTransactionHourlyReport("Cat");
Set<String> domains = catReport.getDomainNames();
Payload payload = ctx.getPayload();
Map<String, String> data = new HashMap<String, String>();
data.put("timestamp", String.valueOf(new Date().getTime()));
TransactionReport report = null;
for (String domain : domains) {
if (domain.equals("Cat")) {
report = catReport;
} else {
report = getTransactionHourlyReport(domain);
}
Machine machine = report.getMachines().get("All");
if (machine != null) {
TransactionType urlDetail = machine.getTypes().get("URL");
if (urlDetail != null) {
data.put(domain + "UrlTotal", String.valueOf(urlDetail.getTotalCount()));
data.put(domain + "UrlResponse", String.valueOf(urlDetail.getAvg()));
}
TransactionType serviceDetail = machine.getTypes().get("Service");
if (serviceDetail != null) {
data.put(domain + "ServiceTotal", String.valueOf(serviceDetail.getTotalCount()));
data.put(domain + "ServiceResponse", String.valueOf(serviceDetail.getAvg()));
String domain = payload.getDomain();
if (!StringUtils.isEmpty(domain)) {
String report = payload.getReport();
String type = payload.getType();
String name = payload.getName();
String ip = payload.getIp();
}
}
}
if (!StringUtils.isEmpty(report)) {
if ("transaction".equalsIgnoreCase(report)) {
TransactionReport transactionReport = getTransactionHourlyReport(domain, ip, type, name);
buildTransactionReportResult(transactionReport, ip, type, name, data);
} else if ("event".equalsIgnoreCase(report)) {
EventReport eventReport = getEventHourlyReport(domain, ip, type);
buildEventReportResult(eventReport, ip, type, name, data);
EventReport eventReport = null;
for (String domain : domains) {
eventReport = getEventHourlyReport(domain);
com.dianping.cat.consumer.event.model.entity.Machine machine = eventReport.getMachines().get("All");
if (machine != null) {
EventType exceptionDetail = machine.getTypes().get("Exception");
if (exceptionDetail != null) {
data.put(domain + "Exception", String.valueOf(exceptionDetail.getTotalCount()));
} else if ("problem".equalsIgnoreCase(report)) {
ProblemReport problemReport = getProblemHourlyReport(domain, ip);
buildProblemReportResult(problemReport, ip, type, name, data);
}
} else {
Map<String, String> temp = getBaseInfoByDomian(domain, ip);
data.putAll(temp);
}
}
model.setData(m_gson.toJson(data));
model.setData(new Gson().toJson(data));
m_jspViewer.view(ctx, model);
}
}
package com.dianping.cat.report.page.dashboard;
import org.apache.commons.lang.StringUtils;
import com.dianping.cat.report.ReportPage;
import com.site.web.mvc.ActionContext;
import com.site.web.mvc.ActionPayload;
......@@ -9,8 +11,25 @@ public class Payload implements ActionPayload<ReportPage, Action> {
@FieldMeta("op")
private Action m_action;
@FieldMeta("report")
private String m_report;
@FieldMeta("domain")
private String m_domain;
@FieldMeta("type")
private String m_type;
@FieldMeta("name")
private String m_name;
@FieldMeta("ip")
private String m_ip;
private ReportPage m_page;
public static final String ALL = "All";
@Override
public Action getAction() {
return m_action;
......@@ -30,6 +49,49 @@ public class Payload implements ActionPayload<ReportPage, Action> {
m_page = ReportPage.getByName(page, ReportPage.DASHBOARD);
}
public String getReport() {
return m_report;
}
public void setReport(String report) {
m_report = report;
}
public String getDomain() {
return m_domain;
}
public void setDomain(String domain) {
m_domain = domain;
}
public String getType() {
return m_type;
}
public void setType(String type) {
m_type = type;
}
public String getName() {
return m_name;
}
public void setName(String name) {
m_name = name;
}
public String getIp() {
if (StringUtils.isEmpty(m_ip)) {
return ALL;
}
return m_ip;
}
public void setIp(String ip) {
m_ip = ip;
}
@Override
public void validate(ActionContext<?> ctx) {
if (m_action == null) {
......
......@@ -1243,19 +1243,24 @@
<role>com.dianping.cat.report.page.dashboard.Handler</role>
<implementation>com.dianping.cat.report.page.dashboard.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.dashboard.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event</role-hint>
<field-name>m_eventService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dashboard.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction</role-hint>
<field-name>m_transactionService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem</role-hint>
<field-name>m_problemService</field-name>
</requirement>
</requirements>
</component>
<component>
......
......@@ -87,26 +87,26 @@ public class PayloadTest {
payload.setStep(-1);
payload.computeStartDate();
checkDate(lastOne, payload.getHistoryStartDate());
checkDate(current, payload.getHistoryEndDate());
checkDate(current, adjustEndDate(payload.getHistoryEndDate()));
payload.computeStartDate();
checkDate(lastTwo, payload.getHistoryStartDate());
checkDate(lastOne, payload.getHistoryEndDate());
checkDate(lastOne, adjustEndDate(payload.getHistoryEndDate()));
payload.setStep(1);
payload.computeStartDate();
checkDate(lastOne, payload.getHistoryStartDate());
checkDate(current, payload.getHistoryEndDate());
checkDate(current, adjustEndDate(payload.getHistoryEndDate()));
payload.setStep(1);
payload.computeStartDate();
checkDate(current, payload.getHistoryStartDate());
checkDate(next, payload.getHistoryEndDate());
checkDate(next, adjustEndDate(payload.getHistoryEndDate()));
payload.setStep(1);
payload.computeStartDate();
checkDate(current, payload.getHistoryStartDate());
checkDate(next, payload.getHistoryEndDate());
checkDate(next, adjustEndDate(payload.getHistoryEndDate()));
}
@Test
......@@ -141,25 +141,25 @@ public class PayloadTest {
payload.setStep(-1);
payload.computeStartDate();
checkDate(lastOne, payload.getHistoryStartDate());
checkDate(sdf.format(new Date(lastOneWeek.getTime() + 7 * ONE_DAY)), payload.getHistoryEndDate());
checkDate(sdf.format(new Date(lastOneWeek.getTime() + 7 * ONE_DAY)), adjustEndDate(payload.getHistoryEndDate()));
payload.computeStartDate();
checkDate(lastTwo, payload.getHistoryStartDate());
checkDate(sdf.format(new Date(lastTwoWeek.getTime() + 7 * ONE_DAY)), payload.getHistoryEndDate());
checkDate(sdf.format(new Date(lastTwoWeek.getTime() + 7 * ONE_DAY)), adjustEndDate(payload.getHistoryEndDate()));
payload.setStep(1);
payload.computeStartDate();
checkDate(lastOne, payload.getHistoryStartDate());
checkDate(sdf.format(new Date(lastOneWeek.getTime() + 7 * ONE_DAY)), payload.getHistoryEndDate());
checkDate(sdf.format(new Date(lastOneWeek.getTime() + 7 * ONE_DAY)), adjustEndDate(payload.getHistoryEndDate()));
payload.computeStartDate();
payload.setStep(1);
checkDate(current, payload.getHistoryStartDate());
checkDate(sdf.format(currentWeek.getTime() + 7 * ONE_DAY), payload.getHistoryEndDate());
checkDate(sdf.format(currentWeek.getTime() + 7 * ONE_DAY), adjustEndDate(payload.getHistoryEndDate()));
payload.computeStartDate();
checkDate(current, payload.getHistoryStartDate());
checkDate(sdf.format(currentWeek.getTime() + 7 * ONE_DAY), payload.getHistoryEndDate());
checkDate(sdf.format(currentWeek.getTime() + 7 * ONE_DAY), adjustEndDate(payload.getHistoryEndDate()));
}
@Test
......@@ -187,15 +187,19 @@ public class PayloadTest {
payload.setStep(-1);
payload.computeStartDate();
checkDate(lastOne, payload.getHistoryStartDate());
checkDate(current, payload.getHistoryEndDate());
checkDate(current, adjustEndDate(payload.getHistoryEndDate()));
payload.computeStartDate();
checkDate(lastTwo, payload.getHistoryStartDate());
checkDate(lastOne, payload.getHistoryEndDate());
checkDate(lastOne, adjustEndDate(payload.getHistoryEndDate()));
payload.setStep(1);
payload.computeStartDate();
checkDate(lastOne, payload.getHistoryStartDate());
checkDate(current, payload.getHistoryEndDate());
checkDate(current, adjustEndDate(payload.getHistoryEndDate()));
}
private Date adjustEndDate(Date date){
return new Date(date.getTime()+1000);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册