📄 springruleenginetest.java
字号:
package test;
import business.LoanApplication;
import business.LoanProcessRuleEngine;
import util.SpringRuleEngine;
import junit.framework.TestCase;
/** TODO 8
*其中包含一些假设:我们期望公司仅在两种州运作,德克萨斯和密歇根。
* 而且我们只接受收支比在70%或更好的人的贷款申请
*显然单元测试会失败因为我们还没有实现任何的逻辑。
* 然而,随着项目的进展,越来越多的测试通过,最后JUnit测试就全部通过了。
*/
public class SpringRuleEngineTest extends TestCase {
public void testSuccessfulFlow() throws Exception {
SpringRuleEngine engine = LoanProcessRuleEngine.getEngine("SharkysExpressLoansApplicationProcessor");
LoanApplication application = new LoanApplication();
application.setFirstName("John");
application.setLastName("Doe");
application.setStateCode("TX");
application.setExpences(4500);
application.setIncome(7000);
engine.processRequest(application);
assertEquals(LoanApplication.APPROVED, application.getStatus());
}
public void testInvalidState() throws Exception {
SpringRuleEngine engine = LoanProcessRuleEngine.getEngine("SharkysExpressLoansApplicationProcessor");
LoanApplication application = new LoanApplication();
application.setFirstName("John");
application.setLastName("Doe");
application.setStateCode("OK");
application.setExpences(4500);
application.setIncome(7000);
engine.processRequest(application);
assertEquals(LoanApplication.INVALID_STATE, application.getStatus());
}
public void testInvalidRatio() throws Exception {
SpringRuleEngine engine = LoanProcessRuleEngine.getEngine("SharkysExpressLoansApplicationProcessor");
LoanApplication application = new LoanApplication();
application.setFirstName("John");
application.setLastName("Doe");
application.setStateCode("MI");
application.setIncome(7000);
application.setExpences(0.80 * 7000);
//too high
engine.processRequest(application);
assertEquals(LoanApplication.INVALID_INCOME_EXPENSE_RATIO, application.getStatus());
}
public void testIncompleteApplication() throws Exception {
SpringRuleEngine engine = LoanProcessRuleEngine.getEngine("SharkysExpressLoansApplicationProcessor");
LoanApplication application = new LoanApplication();
engine.processRequest(application);
assertEquals(LoanApplication.INSUFFICIENT_DATA, application.getStatus());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -