package org.jenkinsci.plugins.github.status.sources.misc; import com.tngtech.java.junit.dataprovider.DataProvider; import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; import hudson.model.Result; import hudson.model.Run; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.kohsuke.github.GHCommitState; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import static org.hamcrest.Matchers.is; import static org.jenkinsci.plugins.github.status.sources.misc.BetterThanOrEqualBuildResult.betterThanOrEqualTo; import static org.junit.Assert.assertThat; /** * @author lanwen (Merkushev Kirill) */ @RunWith(DataProviderRunner.class) public class BetterThanOrEqualBuildResultTest { @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); @Mock private Run run; @DataProvider public static Object[][] results() { return new Object[][]{ {Result.SUCCESS, Result.SUCCESS, true}, {Result.UNSTABLE, Result.UNSTABLE, true}, {Result.FAILURE, Result.FAILURE, true}, {Result.FAILURE, Result.UNSTABLE, true}, {Result.FAILURE, Result.SUCCESS, true}, {Result.SUCCESS, Result.FAILURE, false}, {Result.SUCCESS, Result.UNSTABLE, false}, {Result.UNSTABLE, Result.FAILURE, false}, }; } @Test @UseDataProvider("results") public void shouldMatch(Result defined, Result real, boolean expect) throws Exception { Mockito.when(run.getResult()).thenReturn(real); boolean matched = betterThanOrEqualTo(defined, GHCommitState.FAILURE, "").matches(run); assertThat("matching", matched, is(expect)); } }