package org.jenkinsci.plugins.github.webhook; import com.cloudbees.jenkins.GitHubWebHookFullTest; import org.junit.Test; import org.junit.runner.RunWith; import org.kohsuke.stapler.StaplerRequest; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.nullValue; import static org.mockito.Mockito.when; /** * @author lanwen (Merkushev Kirill) */ @RunWith(MockitoJUnitRunner.class) public class GHEventPayloadTest { public static final String NOT_EMPTY_PAYLOAD_CONTENT = "{}"; public static final String PARAM_NAME = "payload"; public static final String UNKNOWN_CONTENT_TYPE = "text/plain"; @Mock private StaplerRequest req; @Mock private GHEventPayload ann; @Test public void shouldReturnPayloadFromForm() throws Exception { when(req.getContentType()).thenReturn(GitHubWebHookFullTest.FORM); when(req.getParameter(PARAM_NAME)).thenReturn(NOT_EMPTY_PAYLOAD_CONTENT); Object payload = new GHEventPayload.PayloadHandler().parse(req, ann, String.class, PARAM_NAME); assertThat("class", payload, instanceOf(String.class)); assertThat("content", (String) payload, equalTo(NOT_EMPTY_PAYLOAD_CONTENT)); } @Test public void shouldReturnNullOnUnknownContentType() throws Exception { when(req.getContentType()).thenReturn(UNKNOWN_CONTENT_TYPE); Object payload = new GHEventPayload.PayloadHandler().parse(req, ann, String.class, PARAM_NAME); assertThat("payload should be null", payload, nullValue()); } }