Package com.taobao.top.analysis.node.component

Source Code of com.taobao.top.analysis.node.component.FileJobExporterTest

/**
*
*/
package com.taobao.top.analysis.node.component;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Map;

import junit.framework.Assert;

import org.junit.Test;
import com.taobao.top.analysis.config.MasterConfig;
import com.taobao.top.analysis.exception.AnalysisException;
import com.taobao.top.analysis.node.io.FileInputAdaptor;
import com.taobao.top.analysis.node.io.HttpInputAdaptor;
import com.taobao.top.analysis.node.io.IInputAdaptor;
import com.taobao.top.analysis.node.job.Job;
import com.taobao.top.analysis.node.job.JobTask;
import com.taobao.top.analysis.node.job.JobTaskResult;
import com.taobao.top.analysis.statistics.StatisticsEngine;

/**
* @author fangweng
* email: fangweng@taobao.com
* 下午1:13:56
*
*/
public class FileJobExporterTest {

 
  @Test
  public void testExportReportJob() throws AnalysisException, UnsupportedEncodingException, IOException {
    StatisticsEngine defaultAnalysisEngine = new StatisticsEngine();
    defaultAnalysisEngine.init();
   
    IInputAdaptor fileInputAdaptor =  new FileInputAdaptor();
    IInputAdaptor httpInputAdaptor = new HttpInputAdaptor();
   
    defaultAnalysisEngine.addInputAdaptor(fileInputAdaptor);
    defaultAnalysisEngine.addInputAdaptor(httpInputAdaptor);
   
    MixJobBuilder mixJobBuilder = new MixJobBuilder();
    FileJobExporter fileJobExporter = new FileJobExporter();
    MasterConfig config = new MasterConfig();
    config.load("master-config.properties");
    fileJobExporter.setConfig(config);
    mixJobBuilder.setConfig(config);
    mixJobBuilder.init();
    fileJobExporter.init();
   
    Map<String, Job> jobs = mixJobBuilder.build();
   
    for(Job job : jobs.values())
    {
      JobTask task = job.getJobTasks().get(0);
     
      job.setJobResult(defaultAnalysisEngine.doAnalysis(task).getResults())
     
      fileJobExporter.exportReport(job, false);
    }
     
    defaultAnalysisEngine.releaseResource();
    mixJobBuilder.releaseResource();
    fileJobExporter.releaseResource();
  }

 
  @Test
  public void testExportReportJobTaskJobTaskResult() throws AnalysisException, UnsupportedEncodingException, IOException {
    StatisticsEngine defaultAnalysisEngine = new StatisticsEngine();
    defaultAnalysisEngine.init();
   
    IInputAdaptor fileInputAdaptor =  new FileInputAdaptor();
    IInputAdaptor httpInputAdaptor = new HttpInputAdaptor();
   
    defaultAnalysisEngine.addInputAdaptor(fileInputAdaptor);
    defaultAnalysisEngine.addInputAdaptor(httpInputAdaptor);
   
    MixJobBuilder mixJobBuilder = new MixJobBuilder();
    FileJobExporter fileJobExporter = new FileJobExporter();
    MasterConfig config = new MasterConfig();
    config.load("master-config.properties");
    fileJobExporter.setConfig(config);
    mixJobBuilder.setConfig(config);
    mixJobBuilder.init();
    fileJobExporter.init();
   
    Map<String, Job> jobs = mixJobBuilder.build();
   
    for(Job job : jobs.values())
    {
      JobTask task = job.getJobTasks().get(0);
     
      JobTaskResult jobTaskResult = defaultAnalysisEngine.doAnalysis(task)
     
      fileJobExporter.exportReport(task, jobTaskResult, false);
    }
     
    defaultAnalysisEngine.releaseResource();
    mixJobBuilder.releaseResource();
    fileJobExporter.releaseResource();
  }

 
  @Test
  public void testExportEntryDataAndLoadEntryData() throws AnalysisException, UnsupportedEncodingException, IOException, InterruptedException {
   
    StatisticsEngine defaultAnalysisEngine = new StatisticsEngine();
    defaultAnalysisEngine.init();
   
    IInputAdaptor fileInputAdaptor =  new FileInputAdaptor();
    IInputAdaptor httpInputAdaptor = new HttpInputAdaptor();
   
    defaultAnalysisEngine.addInputAdaptor(fileInputAdaptor);
    defaultAnalysisEngine.addInputAdaptor(httpInputAdaptor);
   
    MixJobBuilder mixJobBuilder = new MixJobBuilder();
    FileJobExporter fileJobExporter = new FileJobExporter();
    MasterConfig config = new MasterConfig();
    config.load("master-config.properties");
    fileJobExporter.setConfig(config);
    mixJobBuilder.setConfig(config);
    mixJobBuilder.init();
    fileJobExporter.init();
   
    Map<String, Job> jobs = mixJobBuilder.build();
    Job job = jobs.values().iterator().next();
   
    JobTask task = job.getJobTasks().get(0);
   
    job.setJobResult(defaultAnalysisEngine.doAnalysis(task).getResults());
   
    fileJobExporter.exportEntryData(job);
   
    Thread.sleep(1000);
   
    Map<String, Map<String, Object>> result = job.getJobResult();
    job.setJobResult(null);
   
    fileJobExporter.loadEntryData(job);
    fileJobExporter.loadEntryDataToTmp(job);
   
    Thread.sleep(1000);
   
    String key = result.keySet().iterator().next();
    String key2 = result.get(key).keySet().iterator().next();
    Object value = result.get(key).get(key2);
   
    Assert.assertEquals(job.getJobResult().get(key).get(key2), value);
    Assert.assertEquals(job.getDiskResult().get(key).get(key2), value);
   
     
    defaultAnalysisEngine.releaseResource();
    mixJobBuilder.releaseResource();
    fileJobExporter.releaseResource();
   
  }

}
TOP

Related Classes of com.taobao.top.analysis.node.component.FileJobExporterTest

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.