Package com.dianping.cat.report.task.alert

Source Code of com.dianping.cat.report.task.alert.TopReportVisitorTest$ExceptionConfigMock

package com.dianping.cat.report.task.alert;

import java.util.HashMap;
import java.util.Map;

import org.junit.Assert;
import org.junit.Test;
import org.unidal.helper.Files;
import org.unidal.lookup.ComponentTestCase;

import com.dianping.cat.Constants;
import com.dianping.cat.consumer.top.model.entity.TopReport;
import com.dianping.cat.home.alert.report.entity.AlertReport;
import com.dianping.cat.home.dependency.exception.entity.ExceptionExclude;
import com.dianping.cat.home.dependency.exception.entity.ExceptionLimit;
import com.dianping.cat.report.task.alert.exception.TopReportVisitor;
import com.dianping.cat.system.config.ExceptionConfigManager;

public class TopReportVisitorTest extends ComponentTestCase {

  @Test
  public void test() throws Exception {
    String topReportXml = Files.forIO().readFrom(getClass().getResourceAsStream("topReport.xml"), "utf-8");
    TopReport topReport = com.dianping.cat.consumer.top.model.transform.DefaultSaxParser.parse(topReportXml);

    String expectedAlertReportXml = Files.forIO()
          .readFrom(getClass().getResourceAsStream("alertReport.xml"), "utf-8");

    ExceptionConfigMock exceptionConfigManager = new ExceptionConfigMock();
    AlertReport alertReport = new AlertReport(Constants.CAT);
    TopReportVisitor visitor = new TopReportVisitor().setReport(alertReport).setExceptionConfigManager(
        exceptionConfigManager);

    alertReport.setStartTime(topReport.getStartTime());
    alertReport.setEndTime(topReport.getEndTime());
    visitor.visitTopReport(topReport);

    Assert.assertEquals("Check the report result!", expectedAlertReportXml.replace("\r", ""), alertReport.toString()
          .replace("\r", ""));
  }

  public class ExceptionConfigMock extends ExceptionConfigManager {

    private Map<String, ExceptionLimit> exceptionLimitMap = new HashMap<String, ExceptionLimit>();

    private Map<String, ExceptionExclude> exceptionExcludeMap = new HashMap<String, ExceptionExclude>();

    public ExceptionConfigMock() {
      // exception limit
      ExceptionLimit exceptionAA = new ExceptionLimit("exceptionA");
      exceptionAA.setDomain("domainA").setError(10).setWarning(5);
      exceptionLimitMap.put(exceptionAA.getDomain() + "_" + exceptionAA.getId(), exceptionAA);

      ExceptionLimit exceptionAT = new ExceptionLimit("Total");
      exceptionAT.setDomain("domainA").setError(20).setWarning(10);
      exceptionLimitMap.put(exceptionAT.getDomain(), exceptionAT);

      ExceptionLimit exceptionBA = new ExceptionLimit("exceptionA");
      exceptionBA.setDomain("domainB").setError(10).setWarning(5);
      exceptionLimitMap.put(exceptionBA.getDomain() + "_" + exceptionBA.getId(), exceptionBA);

      ExceptionLimit exceptionCA = new ExceptionLimit("exceptionA");
      exceptionCA.setDomain("domainC").setError(10).setWarning(5);
      exceptionLimitMap.put(exceptionCA.getDomain() + "_" + exceptionCA.getId(), exceptionCA);

      ExceptionLimit exceptionCB = new ExceptionLimit("exceptionB");
      exceptionCB.setDomain("domainC").setError(10).setWarning(5);
      exceptionLimitMap.put(exceptionCB.getDomain() + "_" + exceptionCB.getId(), exceptionCB);

      ExceptionLimit exceptionCC = new ExceptionLimit("exceptionC");
      exceptionCC.setDomain("domainC").setError(10).setWarning(5);
      exceptionLimitMap.put(exceptionCC.getDomain() + "_" + exceptionCC.getId(), exceptionCC);

      ExceptionLimit exceptionCD = new ExceptionLimit("exceptionD");
      exceptionCD.setDomain("domainC").setError(10).setWarning(5);
      exceptionLimitMap.put(exceptionCD.getDomain() + "_" + exceptionCD.getId(), exceptionCD);

      ExceptionLimit exceptionCT = new ExceptionLimit("Total");
      exceptionCT.setDomain("domainC").setError(20).setWarning(10);
      exceptionLimitMap.put(exceptionCT.getDomain(), exceptionCT);

      // exception exclude
      ExceptionExclude exceptionAll = new ExceptionExclude("All");
      exceptionAll.setDomain("domainA");
      exceptionExcludeMap.put(exceptionAll.getDomain() + "_" + exceptionAll.getId(), exceptionAll);

      ExceptionExclude exceptionCAExclude = new ExceptionExclude("exceptionA");
      exceptionCAExclude.setDomain("domainC");
      exceptionExcludeMap.put(exceptionCAExclude.getDomain() + "_" + exceptionCAExclude.getId(), exceptionCAExclude);

    }

    public ExceptionLimit queryDomainExceptionLimit(String domain, String exceptionName) {
      return exceptionLimitMap.get(domain + "_" + exceptionName);
    }

    public ExceptionLimit queryDomainTotalLimit(String domain) {
      return exceptionLimitMap.get(domain);
    }

    public ExceptionExclude queryDomainExceptionExclude(String domain, String exceptionName) {
      ExceptionExclude exceptionExclude = null;
      exceptionExclude = exceptionExcludeMap.get(domain + "_" + exceptionName);
      if (exceptionExclude == null) {
        exceptionExclude = exceptionExcludeMap.get(domain + "_All");
      }
      return exceptionExclude;
    }
  }
}
TOP

Related Classes of com.dianping.cat.report.task.alert.TopReportVisitorTest$ExceptionConfigMock

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.