package net.sf.appstatus.batch; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import java.util.UUID; import net.sf.appstatus.core.AppStatus; import net.sf.appstatus.core.batch.AbstractBatchProgressMonitor; import net.sf.appstatus.core.batch.IBatchProgressMonitor; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Test the failed feature. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/appstatus-jdbc-ora-test-config.xml" }) public class ScenarioOracleTest { @Autowired AppStatus appStatus; private final Logger logger = LoggerFactory.getLogger(ScenarioOracleTest.class); @Test public void testBasicScenario() throws Exception { String uuid = UUID.randomUUID().toString(); IBatchProgressMonitor m = appStatus.getBatchProgressMonitor("Batch name", "Batch group", uuid); m.setLogger(this.logger); // Before first task m.message("Test message"); m.setCurrentItem(""); assertThat(((AbstractBatchProgressMonitor) m).getProgress(), is(-1f)); assertThat(appStatus.getBatchManager().getRunningBatches().get(0).getProgressStatus(), is(-1f)); // Task 1 m.beginTask("Task 1 name", "Task 1 description ", 4); assertThat(((AbstractBatchProgressMonitor) m).getProgress(), is(0f)); assertThat(appStatus.getBatchManager().getRunningBatches().get(0).getProgressStatus(), is(0f)); m.worked(1); assertThat(((AbstractBatchProgressMonitor) m).getProgress(), is(1f)); m.message("Test message"); m.reject("rejected1", "for testing"); assertThat(((AbstractBatchProgressMonitor) m).getRejectedItems().size(), is(1)); assertThat(appStatus.getBatchManager().getRunningBatches().get(0).getRejectedItemsId().get(0), is("rejected1")); assertThat(appStatus.getBatchManager().getRunningBatches().get(0).getProgressStatus(), is(25f)); IBatchProgressMonitor m1 = m.createSubTask(3); m1.beginTask("Sub task 1", "Sub task 1 description", 1); m1.worked(1); m1.done(); assertThat(((AbstractBatchProgressMonitor) m).getProgress(), is(4f)); assertThat(appStatus.getBatchManager().getRunningBatches().get(0).getProgressStatus(), is(100f)); m.done(); assertThat(((AbstractBatchProgressMonitor) m).isSuccess(), is(true)); assertThat(((AbstractBatchProgressMonitor) m).getProgress(), is(4f)); } }