package org.jenkinsci.plugins.github.webhook.subscriber;
import hudson.model.FreeStyleProject;
import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.WithoutJenkins;
import org.kohsuke.github.GHEvent;
import static com.cloudbees.jenkins.GitHubWebHookFullTest.classpath;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import org.jvnet.hudson.test.Issue;
/**
* @author lanwen (Merkushev Kirill)
*/
public class PingGHEventSubscriberTest {
@Rule
public JenkinsRule jenkins = new JenkinsRule();
@Test
public void shouldBeNotApplicableForProjects() throws Exception {
FreeStyleProject prj = jenkins.createFreeStyleProject();
assertThat(new PingGHEventSubscriber().isApplicable(prj), is(false));
}
@Test
public void shouldParsePingPayload() throws Exception {
injectedPingSubscr().onEvent(GHEvent.PING, classpath("payloads/ping.json"));
}
@Issue("JENKINS-30626")
@Test
@WithoutJenkins
public void shouldParseOrgPingPayload() throws Exception {
new PingGHEventSubscriber().onEvent(GHEvent.PING, classpath("payloads/orgping.json"));
}
private PingGHEventSubscriber injectedPingSubscr() {
PingGHEventSubscriber pingSubsc = new PingGHEventSubscriber();
jenkins.getInstance().getInjector().injectMembers(pingSubsc);
return pingSubsc;
}
}