package com.vip.saturn.job.executor;
import com.vip.saturn.job.SaturnJobReturn;
import com.vip.saturn.job.executor.utils.LogbackListAppender;
import com.vip.saturn.job.shell.ScriptJobRunner;
import com.vip.saturn.job.utils.SystemEnvProperties;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Created by xiaopeng.he on 2016/9/20.
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class JsonParseObjectTest {
private SaturnJobReturn readSaturnJobReturn(String filepath) throws Exception {
Map<String, String> envMap = new HashMap<>();
envMap.put(SystemEnvProperties.NAME_VIP_SATURN_OUTPUT_PATH, this.getClass().getResource(filepath).getFile());
ScriptJobRunner scriptJobRunner = new ScriptJobRunner(envMap, null, null, null, null);
Method createSaturnJobReturnFileMethod = scriptJobRunner.getClass().getDeclaredMethod("createSaturnJobReturnFile");
createSaturnJobReturnFileMethod.setAccessible(true);
createSaturnJobReturnFileMethod.invoke(scriptJobRunner);
Method readSaturnJobReturnMethod = scriptJobRunner.getClass().getDeclaredMethod("readSaturnJobReturn");
readSaturnJobReturnMethod.setAccessible(true);
return (SaturnJobReturn) readSaturnJobReturnMethod.invoke(scriptJobRunner);
}
@Test
public void test_A_normal() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnNormal");
SaturnJobReturn expect = new SaturnJobReturn(500, "hello world", 200);
HashMap<String, String> prop = new HashMap();
prop.put("key", "value");
expect.setProp(prop);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
@Test
public void test_B_overFields() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnMoreFields");
SaturnJobReturn expect = new SaturnJobReturn(500, "hello world", 200);
HashMap<String, String> prop = new HashMap();
prop.put("key", "value");
expect.setProp(prop);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
/**
* 少errorGroup,默认为200
*/
@Test
public void test_C_lessFieldErrorGroup() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnLessFieldErrorGroup");
SaturnJobReturn expect = new SaturnJobReturn(500, "hello world", 200);
HashMap<String, String> prop = new HashMap();
prop.put("key", "value");
expect.setProp(prop);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
/**
* 少prop,默认为空
*/
@Test
public void test_D_lessFieldProp() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnLessFieldProp");
SaturnJobReturn expect = new SaturnJobReturn(500, "hello world", 200);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
/**
* 少returnCode,默认为0
*/
@Test
public void test_E_lessFieldReturnCode() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnLessFieldReturnCode");
SaturnJobReturn expect = new SaturnJobReturn(0, "hello world", 200);
HashMap<String, String> prop = new HashMap();
prop.put("key", "value");
expect.setProp(prop);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
/**
* 少returnMsg,默认为空
*/
@Test
public void test_F_lessFieldReturnMsg() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnLessFieldReturnMsg");
SaturnJobReturn expect = new SaturnJobReturn(500, null, 200);
HashMap<String, String> prop = new HashMap();
prop.put("key", "value");
expect.setProp(prop);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
/**
* 少全部字段,只有{}
*/
@Test
public void test_G_NoFields() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnNoFields");
SaturnJobReturn expect = new SaturnJobReturn();
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
/**
* 没有内容
*/
@Test
public void test_H_blank() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnBlank");
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn).isNull();
}
@Test
public void test_I_trim() throws Exception {
LogbackListAppender logbackListAppender = new LogbackListAppender();
logbackListAppender.addToLogger(ScriptJobRunner.class);
logbackListAppender.start();
SaturnJobReturn saturnJobReturn = readSaturnJobReturn("/SaturnJobReturnTrim");
SaturnJobReturn expect = new SaturnJobReturn(500, "hello world", 200);
HashMap<String, String> prop = new HashMap();
prop.put("key", "value");
expect.setProp(prop);
assertThat(logbackListAppender.getLastMessage()).isNull();
assertThat(saturnJobReturn)
.isNotNull()
.isEqualToComparingFieldByField(expect);
}
}