@Test(timeout=10000) public void testBasicLarge() throws Exception { int count = 100; for (int i = 1; i <= count; i++) { JobSpec aJob = getTestJob(String.valueOf(i), dao); try { dao.createJob(aJob); } catch (Exception ex) { ex.printStackTrace(); } } runRunnable(agentDriver); assertEquals(count, dao.getQueue(null).size()); waitUntilJobsFinished(consumer, count); assertEquals(0, dao.getQueue(null).size()); assertEquals(count, dao.getJobRuns(null, count).size()); assertEquals(0, consumer.getFailedQueries(count).size()); assertEquals(count, consumer.getFinishedJobs(count).size()); assertEquals(count, consumer.getSuccesfulQueries(count).size()); }
@Test public void testPersistJobRuns() { JobSpec aJob = TestAgent.getTestJob("Roxane Gay", dao); dao.createJob(aJob); PlannedJob pj = new PlannedJob(aJob, Utils.getCurrentTime()); CallableJob cj = new CallableQuery(pj, dao, reporting, "example.com", mailInfo, null, drivers.get(0), null, 1); consumer.submitJob(cj); TestAgent.waitUntilJobsFinished(consumer, 1); assertEquals(1, consumer.getSuccesfulQueries(limit).size()); // Let job run and result doesn't matter // Now we should be able to get job history from a new consumer // and the job above should exist! JobDao local = new H2TestJobDaoImpl(); local.setDataSource(H2TestUtil.getDataSource()); assertEquals(1, local.getJobRuns(null, AgentConsumer.LIMIT_JOB_RUNS).values().size()); }
@Test public void testBasicDependent() throws Exception { String jobName = "TE Lawrence"; JobSpec parent = getTestJob(jobName, dao); JobSpec child = getTestJob(jobName + " arabia", dao); child.setCronString(null); try { dao.createJob(parent); child.setParent(parent.getId()); long id = dao.createJob(child); } catch (Exception ex) { ex.printStackTrace(); } TestAgent.runRunnable(agentDriver); assertEquals(1, dao.getQueue(null).size()); runRunnable(consumer); Thread.sleep(100); // child job should have been queued assertEquals(1, dao.getQueue(null).size()); runRunnable(consumer); waitUntilJobsFinished(consumer, 2); assertEquals(2, consumer.getSuccesfulQueries(AgentConsumer.LIMIT_JOB_RUNS) .values().size()); } }
assertEquals("jobRuns: " + jobRuns, 5, jobRuns.values().size()); assertEquals(5, consumer.getFinishedJobs(limit).size()); Map<Long, CallableJob> success = consumer.getSuccesfulQueries(limit); assertEquals("successful Queries:" + success, 0, success.size()); assertEquals(false,
@Test public void testJobNoResubmit() throws BackendException { consumer.SLEEP_FOR = 1; JobSpec aJob = TestAgent.getTestJob("Hannah Arendt", dao); aJob.setCode("not a valid query..."); aJob.setShouldRerun(false); dao.createJob(aJob); PlannedJob pj = new PlannedJob(aJob, Utils.getCurrentTime()); CallableJob cj = new CallableQuery(pj, dao, reporting, "example.com", mailInfo, null, drivers.get(0), null, 1); consumer.submitJob(cj); // let the job run and fail TestAgent.waitUntilJobsFinished(consumer, 1); boolean isSuccess = cj.isSuccess(); assertEquals(false, isSuccess); Map<Long, CallableJob> expected = new HashMap<>(); expected.put(cj.getJobId(), cj); assertEquals(expected, consumer.getFailedQueries(limit)); // See if the job retries TestAgent.runRunnable(consumer); TestAgentConsumer.doSleep(); assertEquals(0, dao.getRunningJobs().size()); Map<Long, CallableJob> jobRuns = dao.getJobRuns(null, AgentConsumer.LIMIT_JOB_RUNS); assertEquals("jobRuns: " + jobRuns, 1, jobRuns.values().size()); assertEquals(1, consumer.getFinishedJobs(limit).size()); assertEquals(0, consumer.getSuccesfulQueries(limit).size()); }
@Test public void testCancelPendingJob() throws BackendException { JobSpec aJob = TestAgent.getTestJob("Foucault", dao); aJob.setShouldRerun(true); long id = dao.createJob(aJob); PlannedJob pj = new PlannedJob(dao.getJob(id), Utils.getCurrentTime()); dao.addToQueue(pj); int actual = dao.cancelJob(pj); assertEquals(1, actual); actual = dao.cancelJob(pj); assertEquals(0, actual); TestAgent.runRunnable(consumer); assertEquals(0, dao.getRunningJobs().size()); assertEquals(0, consumer.getFinishedJobs(limit).size()); assertEquals(0, consumer.getSuccesfulQueries(limit).size()); assertEquals(0, consumer.getFailedQueries(limit).size()); }
assertEquals(1, consumer.getSuccesfulQueries(limit).size()); assertEquals(0, consumer.getFinishedJobs(limit).get(nextId).getStatus().get());
@Test public void testJobResubmitSuccessUpdateQuery() throws BackendException { JobSpec aJob = TestAgent.getTestJob("Robert Frank", dao); String tableName = "table_dne_yet"; aJob.setCode(String.format("select * from %s", tableName)); dao.createJob(aJob); PlannedJob pj = new PlannedJob(aJob, Utils.getCurrentTime()); CallableJob cj = new CallableQuery(pj, dao, reporting, "example.com", mailInfo, null, drivers.get(0), null, 1); consumer.submitJob(cj); TestAgent.waitForFail(consumer, 1); boolean isSuccess = cj.isSuccess(); assertEquals(false, isSuccess); Map<Long, CallableJob> expected = new HashMap<>(); expected.put(cj.getJobId(), cj); assertEquals(expected, consumer.getFailedQueries(limit)); Long nextId = cj.getJobId()+1; aJob = dao.getJob(aJob.getId()); aJob.setCode("show tables;"); dao.updateJob(aJob); TestAgent.runRunnable(consumer); doSleep(); assertEquals(0, dao.getRunningJobs().size()); assertEquals(2, consumer.getFinishedJobs(limit).size()); assertEquals(1, consumer.getSuccesfulQueries(limit).size()); assertEquals(0, consumer.getFinishedJobs(limit).get(nextId).getStatus().get()); } @Test
assertEquals(0, consumer.getSuccesfulQueries(limit).size()); assertEquals(0, consumer.getFailedQueries(limit).size()); assertEquals(consumer.getFinishedJobs(limit).toString(), 0, consumer.getFinishedJobs(limit).size()); assertEquals(0, consumer.getSuccesfulQueries(limit).size()); assertEquals(0, consumer.getFailedQueries(limit).size());