package com.vip.saturn.it.impl;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
import java.io.File;
import java.io.IOException;
import org.apache.commons.exec.OS;
import org.junit.*;
import org.junit.runners.MethodSorters;
import com.vip.saturn.it.AbstractSaturnIT;
import com.vip.saturn.it.JobType;
import com.vip.saturn.it.SaturnAutoBasic.FinishCheck;
import com.vip.saturn.it.job.SimpleJavaJob;
import com.vip.saturn.job.internal.config.JobConfiguration;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ScriptJobIT extends AbstractSaturnIT {
public static String NORMAL_SH_PATH;
@BeforeClass
public static void setUp() throws Exception {
startNamespaceShardingManagerList(1);
startExecutorList(1);
File file1 = new File("src/test/resources/script/normal/normal_0.sh");
NORMAL_SH_PATH = file1.getAbsolutePath();
}
@AfterClass
public static void tearDown() throws Exception {
// clean msg in the queueToTest
// clearQueues(queueToTest);
stopExecutorList();
stopNamespaceShardingManagerList();
}
@Test
public void A_Normalsh() throws InterruptedException {
if (!OS.isFamilyUnix()) {
return;
}
final JobConfiguration jobConfiguration = new JobConfiguration("scriptJob_1");
jobConfiguration.setCron("*/4 * * * * ?");
jobConfiguration.setJobType(JobType.SHELL_JOB.toString());
jobConfiguration.setJobClass("com.vip.saturn.job.shell.SaturnScriptJob");
jobConfiguration.setShardingTotalCount(1);
jobConfiguration.setProcessCountIntervalSeconds(1);
jobConfiguration.setShardingItemParameters("0=sh " + NORMAL_SH_PATH);
addJob(jobConfiguration);
Thread.sleep(1000);
log.info("enabled job...");
enableJob(jobConfiguration.getJobName());
Thread.sleep(1000);
try {
waitForFinish(new FinishCheck() {
@Override
public boolean docheck() {
String count = getJobNode(jobConfiguration,
"servers/" + saturnExecutorList.get(0).getExecutorName() + "/processSuccessCount");
log.info("success count: {}", count);
int cc = Integer.parseInt(count);
if( cc > 0){
return true;
}
return false;
}
}, 15);
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
disableJob(jobConfiguration.getJobName());
}
}