package com.lassekoskela.maven.buildevents;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import org.junit.Before;
import org.junit.Test;
public class BuildEventLog_MultimoduleProjectTest extends
AbstractBuildEventLogTest {
@Before
public void setUp() throws Exception {
simulator.goal("project-1", "phase-A", "goal-1A1", 100);
simulator.goal("project-1", "phase-A", "goal-1A2", 100);
simulator.goal("project-1", "phase-B", "goal-1B1", 100);
simulator.goal("project-2", "phase-A", "goal-2A1", 100);
simulator.goal("project-2", "phase-B", "goal-2B1", 100);
}
@Test
public void asksForTotalDurationFromTheReportObject() {
assertEquals(500, log.totalDuration());
}
@Test
public void asksForTotalDurationForProjectFromTheReportObject() {
assertEquals(300, log.totalDurationOfProject("project-1"));
assertEquals(200, log.totalDurationOfProject("project-2"));
}
@Test
public void asksForTotalDurationForProjectPhaseFromTheReportObject() {
assertEquals(200, log.totalDurationOfPhase("project-1", "phase-A"));
assertEquals(100, log.totalDurationOfPhase("project-2", "phase-B"));
}
@Test
public void producesAReportOnCue() throws Exception {
log.report();
assertThat(getReportedSteps(), hasBuildStep("project-1", "phase-A", "goal-1A1"));
assertThat(getReportedSteps(), hasBuildStep("project-1", "phase-A", "goal-1A2"));
assertThat(getReportedSteps(), hasBuildStep("project-1", "phase-B", "goal-1B1"));
assertThat(getReportedSteps(), hasBuildStep("project-2", "phase-A", "goal-2A1"));
assertThat(getReportedSteps(), hasBuildStep("project-2", "phase-B", "goal-2B1"));
}
}