package org.netmelody.cieye.spies.jenkins.test;
import java.io.File;
import org.junit.Test;
import org.netmelody.cieye.core.domain.CiServerType;
import org.netmelody.cieye.core.domain.Feature;
import org.netmelody.cieye.core.domain.TargetDetail;
import org.netmelody.cieye.core.domain.TargetDigestGroup;
import org.netmelody.cieye.core.observation.Contact;
import org.netmelody.cieye.server.configuration.RecordedKnownOffenders;
import org.netmelody.cieye.server.configuration.SettingsFile;
import org.netmelody.cieye.server.observation.protocol.JsonRestRequester;
import org.netmelody.cieye.spies.jenkins.JenkinsCommunicator;
import org.netmelody.cieye.spies.jenkins.JenkinsSpy;
import org.netmelody.cieye.spies.jenkins.JobLaboratory;
import org.netmelody.cieye.spies.jenkins.jsondomain.Job;
import com.google.gson.GsonBuilder;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
public final class JenkinsSpyImmersionTest {
@Test public void
canAnalyseJobFromTheJenkinsLiveInstance() {
final Contact contact = new JsonRestRequester(new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").create());
final JenkinsCommunicator communicator = new JenkinsCommunicator("http://ci.jenkins-ci.org", contact);
final JobLaboratory lab = new JobLaboratory(communicator, new RecordedKnownOffenders(new SettingsFile(new File(""))));
final Job job = new Job();
job.url = "http://ci.jenkins-ci.org/view/Jenkins%20core/job/jenkins_pom/";
lab.analyseJob(job);
lab.lastBadBuildUrlFor(job);
}
@Test public void
canPullFromTheJenkinsLiveInstance() {
final GsonBuilder builder = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
final Contact realContact = new JsonRestRequester(builder.create());
final JenkinsSpy witness = new JenkinsSpy("http://ci.jenkins-ci.org", new RecordedKnownOffenders(new SettingsFile(new File(""))), realContact);
final TargetDigestGroup digests = witness.targetsConstituting(new Feature("Jenkins core", "http://ci.jenkins-ci.org", new CiServerType("JENKINS")));
assertThat(witness.statusOf(digests.iterator().next().id()), is(notNullValue(TargetDetail.class)));
}
@Test public void
canPullFromSecureJenkinsLiveInstance() {
final GsonBuilder builder = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
final Contact realContact = new JsonRestRequester(builder.create());
final JenkinsSpy witness = new JenkinsSpy("https://jenkins.puppetlabs.com", new RecordedKnownOffenders(new SettingsFile(new File(""))), realContact);
final TargetDigestGroup digests = witness.targetsConstituting(new Feature("MCO Core", "https://jenkins.puppetlabs.com", new CiServerType("JENKINS")));
assertThat(witness.statusOf(digests.iterator().next().id()), is(notNullValue(TargetDetail.class)));
}
}