package com.capitalone.dashboard.collector;
import com.capitalone.dashboard.model.Build;
import com.capitalone.dashboard.model.JenkinsJob;
import com.capitalone.dashboard.model.TestResult;
import java.util.Map;
import java.util.Set;
/**
* Client for fetching job and build information from Hudson
*/
public interface JenkinsClient {
/**
* Finds all of the configured jobs for a given instance and returns the set of
* builds for each job. At a minimum, the number and url of each Build will be
* populated.
*
* @param instanceUrl the URL for the Hudson instance
* @return a summary of every build for each job on the instance
*/
Map<JenkinsJob, Set<Build>> getInstanceJobs(String instanceUrl);
/**
*
* @param buildUrl
* @return
*/
boolean buildHasCucumberResults(String buildUrl);
/**
* This method is responsible for going to the Jenkins systems, accessing a specific build, getting the
* (cucumber) results.json file, and parsing it to a TestResult
*
* @param buildUrl url of the Jenkins build
* @return a TestResult
*/
TestResult getCucumberTestResult(String buildUrl);
}