package com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features; import com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.JobView; import com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.headline.HeadlineConfig; import hudson.model.User; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import static com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.syntacticsugar.Sugar.*; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; @RunWith(PowerMockRunner.class) @PrepareForTest({ User.class }) public class HasHeadlineShowingAbortedBuildDetails { private JobView view; @Test public void should_tell_who_aborted_the_build() throws Exception { view = a(jobView().which(hasHeadlineThatShowsCommitters()).of( a(job().whereTheLast(build().wasAbortedBy("Abe"))))); assertThat(headlineOf(view), is("Execution aborted by Abe")); } @Test public void should_tell_if_a_build_was_aborted() throws Exception { view = a(jobView().which(hasHeadlineThatDoesNotShowCommitters()).of( a(job().whereTheLast(build().wasAbortedBy("Abe"))))); assertThat(headlineOf(view), is("Execution aborted")); } // -- private Feature hasHeadlineThatShowsCommitters() { return new HasHeadline(new HeadlineConfig(true)); } private Feature hasHeadlineThatDoesNotShowCommitters() { return new HasHeadline(new HeadlineConfig(false)); } private String headlineOf(JobView job) { return job.which(HasHeadline.class).asJson().value(); } }