Package com.dianping.cat.report.page.dependency.graph

Source Code of com.dianping.cat.report.page.dependency.graph.GraphConfigManagerTest

package com.dianping.cat.report.page.dependency.graph;

import java.io.File;
import java.io.IOException;

import junit.framework.Assert;

import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.unidal.helper.Files;
import org.unidal.tuple.Pair;

import com.dianping.cat.consumer.dependency.model.entity.Dependency;
import com.dianping.cat.consumer.dependency.model.entity.Index;
import com.dianping.cat.home.dependency.config.entity.DomainConfig;
import com.dianping.cat.home.dependency.config.entity.EdgeConfig;

public class GraphConfigManagerTest {
  private TopologyGraphConfigManager m_manager;

  private File m_file;

  private String m_orginalContent;

  @After
  public void after() throws IOException {
    Files.forIO().writeTo(m_file, m_orginalContent);
  }

  @Before
  public void setUp() throws InitializationException, IOException {
    m_manager = new TopologyGraphConfigManager();
    m_file = new File("src/test/resources/com/dianping/cat/report/page/dependency/graph/ConfigForTest.xml");
    m_orginalContent = Files.forIO().readFrom(m_file, "utf-8");
    m_manager.setFileName(m_file.getAbsolutePath());
    m_manager.initialize();
  }

  @Test
  public void testAddModifyDeleteEdge() throws IOException {
    String type = "PigeonCall";
    String from = "TuanGouWeb";
    String to = "TuanGouService";
    EdgeConfig config = new EdgeConfig(type + ":" + from + ":" + to);

    config.setType(type);
    config.setFrom(from);
    config.setTo(to);
    config.setErrorResponseTime(1.1);
    config.setErrorThreshold(1);
    config.setWarningResponseTime(2.2);
    config.setWarningThreshold(2);

    m_manager.insertEdgeConfig(config);

    String addContent = Files.forIO().readFrom(GraphConfigManagerTest.class.getResourceAsStream("AddEdgeConfig.xml"),
          "utf-8");
    Assert.assertEquals(addContent.replaceAll("\r", ""), m_manager.getConfig().toString().replaceAll("\r", ""));

    config = new EdgeConfig(from);
    config.setType(type);
    config.setFrom(from);
    config.setTo(to);
    config.setErrorResponseTime(11.1);
    config.setErrorThreshold(11);
    config.setWarningResponseTime(22.2);
    config.setWarningThreshold(22);
    m_manager.insertEdgeConfig(config);

    String updateContent = Files.forIO().readFrom(
          GraphConfigManagerTest.class.getResourceAsStream("UpdateEdgeConfig.xml"), "utf-8");
    Assert.assertEquals(updateContent.replaceAll("\r", ""), m_manager.getConfig().toString().replaceAll("\r", ""));

    m_manager.deleteEdgeConfig(type, from, to);
    Assert.assertEquals(m_orginalContent.replaceAll("\r", ""), m_manager.getConfig().toString().replaceAll("\r", ""));
  }

  @Test
  public void testAddModifyDeleteNode() throws IOException {
    String type = "URL";
    String domain = "cat";
    DomainConfig config = new DomainConfig(domain);
    config.setErrorResponseTime(1.1);
    config.setErrorThreshold(1);
    config.setWarningResponseTime(2.2);
    config.setWarningThreshold(2);
    m_manager.insertDomainConfig(type, config);

    String addContent = Files.forIO().readFrom(
          GraphConfigManagerTest.class.getResourceAsStream("AddDomainConfig.xml"), "utf-8");
    Assert.assertEquals(addContent.replaceAll("\r", ""), m_manager.getConfig().toString().replaceAll("\r", ""));

    config = new DomainConfig(domain);
    config.setErrorResponseTime(11.1);
    config.setErrorThreshold(11);
    config.setWarningResponseTime(22.2);
    config.setWarningThreshold(22);
    m_manager.insertDomainConfig(type, config);

    String updateContent = Files.forIO().readFrom(
          GraphConfigManagerTest.class.getResourceAsStream("UpdateDomainConfig.xml"), "utf-8");
    Assert.assertEquals(updateContent.replaceAll("\r", ""), m_manager.getConfig().toString().replaceAll("\r", ""));

    m_manager.deleteDomainConfig(type, domain);
    Assert.assertEquals(m_orginalContent.replaceAll("\r", ""), m_manager.getConfig().toString().replaceAll("\r", ""));
  }
 
  @Test
  public void testBuildNodeStateByError(){
    Index index = new Index("URL");
    index.setAvg(40.0);
    index.setErrorCount(50);
    index.setSum(1000.0);
    index.setTotalCount(100);
   
    Pair<Integer, String> state = m_manager.buildNodeState("cat", index);
    Assert.assertEquals(GraphConstrant.OK, (int)state.getKey());
   
    index.setErrorCount(100);
    state = m_manager.buildNodeState("cat", index);
    Assert.assertEquals(GraphConstrant.WARN, (int)state.getKey());

    index.setErrorCount(200);
    state = m_manager.buildNodeState("cat", index);
    Assert.assertEquals(GraphConstrant.ERROR, (int)state.getKey());
  }
 
  @Test
  public void testBuildNodeStateByResponse(){
    Index index = new Index("URL");
    String domain = "UserWeb";
    index.setAvg(5.0);
    index.setErrorCount(5);
    index.setSum(1000.0);
    index.setTotalCount(100);
   
    Pair<Integer, String> state = m_manager.buildNodeState(domain, index);
    Assert.assertEquals(GraphConstrant.OK, (int)state.getKey());
   
    index.setAvg(10.0);
    state = m_manager.buildNodeState(domain, index);
    Assert.assertEquals(GraphConstrant.WARN, (int)state.getKey());

    index.setAvg(100.0);
    state = m_manager.buildNodeState(domain, index);
    Assert.assertEquals(GraphConstrant.ERROR, (int)state.getKey());
  }
 
  @Test
  public void testBuildEdgeStateByDefault(){
    Dependency index = new Dependency();
    String service = "TuanGouService";
    index.setType("PigeonCall");
    String domain = "cat";
    index.setTarget(service);
    index.setAvg(40.0);
    index.setErrorCount(50);
    index.setSum(1000.0);
    index.setTotalCount(100);
   
    Pair<Integer, String> state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.OK, (int)state.getKey());
   
    index.setErrorCount(100);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.WARN, (int)state.getKey());

    index.setErrorCount(200);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.ERROR, (int)state.getKey());
  }
 

  @Test
  public void testBuildEdgeStateByConfig(){
    Dependency index = new Dependency();
    String domain = "cat";
    String service = "UserService";
    index.setType("PigeonCall");
    index.setTarget(service);
    index.setAvg(9.0);
    index.setErrorCount(9);
    index.setSum(1000.0);
    index.setTotalCount(100);
   
    Pair<Integer, String> state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.OK, (int)state.getKey());
   
    index.setAvg(10.0);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.WARN, (int)state.getKey());

    index.setAvg(100.0);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.ERROR, (int)state.getKey());
  }
 
  @Test
  public void testBuildEdgeStateByProjectConfig(){
    Dependency index = new Dependency();
    String domain = "UserWeb";
    String service = "UserService";
    index.setType("PigeonCall");
    index.setTarget(service);
    index.setAvg(9.0);
    index.setErrorCount(9);
    index.setSum(1000.0);
    index.setTotalCount(100);
   
    Pair<Integer, String> state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.OK, (int)state.getKey());
   
    index.setAvg(10.0);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.WARN, (int)state.getKey());

    index.setAvg(20.0);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.ERROR, (int)state.getKey());
   
    index.setAvg(9.0);
   
   
    index.setErrorCount(10);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.WARN, (int)state.getKey());

    index.setErrorCount(20);
    state = m_manager.buildEdgeState(domain, index);
    Assert.assertEquals(GraphConstrant.ERROR, (int)state.getKey());
  }

}
TOP

Related Classes of com.dianping.cat.report.page.dependency.graph.GraphConfigManagerTest

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.