package hudson.plugins.emailext.plugins.content; import hudson.model.AbstractBuild; import hudson.model.TaskListener; import hudson.tasks.test.AbstractTestResultAction; import hudson.util.StreamTaskListener; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; /** * Test class for TestCountsContentTest. * * @author Seiji Sogabe */ public class TestCountsContentTest { private TestCountsContent target; private AbstractBuild<?, ?> build; private TaskListener listener; @Before public void setUp() { target = new TestCountsContent(); build = mock(AbstractBuild.class); listener = StreamTaskListener.fromStdout(); } @After public void tearDown() { } @Test @SuppressWarnings("unchecked") public void testGetContent_NoTestResults() throws Exception { target.var = "total"; assertEquals("", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); } /** * Verifies that token expansion works for pipeline builds (JENKINS-38519). */ @Test @SuppressWarnings("unchecked") public void testGetContent_withWorkspaceAndNoTestResults() throws Exception { target.var = "total"; assertEquals("", target.evaluate(build, build.getWorkspace(), listener, TestCountsContent.MACRO_NAME)); } @Test @SuppressWarnings("unchecked") public void testGetContent() throws Exception { AbstractTestResultAction<?> results = mock(AbstractTestResultAction.class); when(results.getTotalCount()).thenReturn(5); when(results.getTotalCount() - results.getFailCount() - results.getSkipCount()).thenReturn(2); when(results.getFailCount()).thenReturn(2); when(results.getSkipCount()).thenReturn(1); when(build.getAction(AbstractTestResultAction.class)).thenReturn(results); assertEquals("5", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); target.var = "total"; assertEquals("5", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); target.var = "pass"; assertEquals("2", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); target.var = "fail"; assertEquals("2", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); target.var = "skip"; assertEquals("1", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); target.var = "SKIP"; assertEquals("1", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); target.var = "wrongvar"; assertEquals("", target.evaluate(build, listener, TestCountsContent.MACRO_NAME)); } }