use of com.hazelcast.jet.core.TestProcessors.MockPS in project hazelcast-jet by hazelcast.
the class ExecutionLifecycleTest method when_pmsInitThrows_then_jobFails.
@Test
public void when_pmsInitThrows_then_jobFails() {
// Given
RuntimeException e = new RuntimeException("mock error");
DAG dag = new DAG().vertex(new Vertex("test", new MockPMS(() -> new MockPS(MockP::new, NODE_COUNT)).setInitError(e)));
// When
Job job = runJobExpectFailure(dag, e);
// Then
assertPmsClosedWithError(e);
assertJobFailed(job, e);
}
use of com.hazelcast.jet.core.TestProcessors.MockPS in project hazelcast-jet by hazelcast.
the class ExecutionLifecycleTest method when_jobCancelled_then_psCloseNotCalledBeforeTaskletsDone.
@Test
public void when_jobCancelled_then_psCloseNotCalledBeforeTaskletsDone() {
// Given
DAG dag = new DAG().vertex(new Vertex("test", new MockPS(() -> new StuckProcessor(10_000), NODE_COUNT)));
// When
Job job = instance.newJob(dag);
assertOpenEventually(StuckProcessor.executionStarted);
// Then
job.cancel();
assertTrueEventually(() -> assertEquals(JobStatus.COMPLETING, job.getStatus()), 3);
assertTrueFiveSeconds(() -> {
assertEquals(JobStatus.COMPLETING, job.getStatus());
assertEquals("PS.close called before execution finished", 0, MockPS.closeCount.get());
});
StuckProcessor.proceedLatch.countDown();
expectedException.expect(CancellationException.class);
job.join();
assertEquals("PS.close not called after execution finished", NODE_COUNT, MockPS.closeCount.get());
}
use of com.hazelcast.jet.core.TestProcessors.MockPS in project hazelcast-jet by hazelcast.
the class ExecutionLifecycleTest method when_executionCancelled_then_jobCompletedWithCancellationException.
@Test
public void when_executionCancelled_then_jobCompletedWithCancellationException() throws Throwable {
// Given
DAG dag = new DAG().vertex(new Vertex("test", new MockPMS(() -> new MockPS(StuckProcessor::new, NODE_COUNT))));
// When
Job job = instance.newJob(dag);
try {
StuckProcessor.executionStarted.await();
job.cancel();
job.join();
fail("Job execution should fail");
} catch (CancellationException ignored) {
}
assertTrueEventually(() -> {
assertJobFailed(job, new CancellationException());
assertPsClosedWithError(new CancellationException());
assertPmsClosedWithError(new CancellationException());
});
}
use of com.hazelcast.jet.core.TestProcessors.MockPS in project hazelcast-jet by hazelcast.
the class ExecutionLifecycleTest method when_processorInitThrows_then_failJob.
@Test
public void when_processorInitThrows_then_failJob() {
// Given
DAG dag = new DAG();
RuntimeException e = new RuntimeException("mock error");
dag.newVertex("faulty", new MockPMS(() -> new MockPS(() -> new MockP().setInitError(e), NODE_COUNT)));
// When
Job job = runJobExpectFailure(dag, e);
// Then
assertPClosedWithError(e, true);
assertPsClosedWithError(e);
assertPmsClosedWithError(e);
assertJobFailed(job, e);
}
use of com.hazelcast.jet.core.TestProcessors.MockPS in project hazelcast-jet by hazelcast.
the class ExecutionLifecycleTest method when_pmsGetThrows_then_jobFails.
@Test
public void when_pmsGetThrows_then_jobFails() {
// Given
RuntimeException e = new RuntimeException("mock error");
DAG dag = new DAG().vertex(new Vertex("faulty", new MockPMS(() -> new MockPS(MockP::new, NODE_COUNT)).setGetError(e)));
// When
Job job = runJobExpectFailure(dag, e);
// Then
assertPmsClosedWithError(e);
assertJobFailed(job, e);
}
Aggregations