Advertisement
Guest User

Untitled

a guest
Dec 19th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.18 KB | None | 0 0
  1. package gov.bsp.lcmis.internal.report.manager;
  2.  
  3. import static org.hamcrest.CoreMatchers.equalTo;
  4. import static org.junit.Assert.assertThat;
  5.  
  6. import java.sql.Connection;
  7. import java.sql.SQLException;
  8. import java.text.DateFormat;
  9. import java.text.ParseException;
  10. import java.text.SimpleDateFormat;
  11. import java.util.ArrayList;
  12. import java.util.Arrays;
  13. import java.util.Calendar;
  14. import java.util.Date;
  15. import java.util.List;
  16.  
  17. import javax.naming.NamingException;
  18. import javax.sql.DataSource;
  19.  
  20. import org.junit.BeforeClass;
  21. import org.junit.Test;
  22. import org.junit.runner.RunWith;
  23. import org.slf4j.Logger;
  24. import org.slf4j.LoggerFactory;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.context.ApplicationContext;
  27. import org.springframework.context.ApplicationContextAware;
  28. import org.springframework.jdbc.datasource.AbstractDataSource;
  29. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  30. import org.springframework.mock.jndi.SimpleNamingContextBuilder;
  31. import org.springframework.test.context.ActiveProfiles;
  32. import org.springframework.test.context.ContextConfiguration;
  33. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  34. import org.springframework.test.context.web.WebAppConfiguration;
  35.  
  36. import com.ibm.icu.impl.Assert;
  37.  
  38. import gov.bsp.lcmis.internal.posting.domain.AccrualDetails;
  39. import gov.bsp.lcmis.internal.posting.domain.AccrualsPromissoryNote;
  40. import gov.bsp.lcmis.internal.posting.domain.BankType;
  41. import gov.bsp.lcmis.internal.posting.domain.LoanType;
  42. import gov.bsp.lcmis.internal.posting.domain.cfassimulator.SpecificationCondition;
  43. import gov.bsp.lcmis.internal.posting.manager.AccrualsPostingManager;
  44. import gov.bsp.lcmis.internal.posting.repo.AccrualsRetrievePnDataRepo;
  45. import gov.bsp.lcmis.internal.posting.service.PostLedgerService;
  46. import gov.bsp.lcmis.internal.posting.service.SaveComputedAccrualsService;
  47. import gov.bsp.lcmis.internal.posting.specification.BankAccrualsSpecification;
  48. import gov.bsp.lcmis.internal.posting.specification.BankTypeSpecification;
  49. import gov.bsp.lcmis.internal.posting.specification.LedgerCodeSpecification;
  50. import gov.bsp.lcmis.internal.posting.specification.LedgerEntrySpecification;
  51. import gov.bsp.lcmis.internal.posting.specification.LoanAccrualsSpecification;
  52. import gov.bsp.lcmis.internal.posting.specification.LoanLedgerSpecification;
  53. import gov.bsp.lcmis.internal.posting.specification.PnAccrualsSpecification;
  54. import gov.bsp.lcmis.internal.report.domain.RvcReport;
  55. import gov.bsp.lcmis.internal.report.repo.RetrievePnDetailsRepo;
  56. import gov.bsp.lcmis.internal.report.utils.DetermineDate;
  57.  
  58. @RunWith(SpringJUnit4ClassRunner.class)
  59. @WebAppConfiguration
  60. @ContextConfiguration(value="file:src/main/webapp/WEB-INF/dispatcher-servlet.xml")
  61. @ActiveProfiles("test")
  62. public class AccrualBatchTest implements ApplicationContextAware {
  63.  
  64. @Autowired
  65. private PostLedgerService postLedgerService;
  66.  
  67. @Autowired
  68. private AccrualsRetrievePnDataRepo accrualsRetrievePnDataRepo;
  69.  
  70. @Autowired
  71. private DetermineDate determineDate;
  72.  
  73. private ApplicationContext applicationContext;
  74.  
  75. private static Logger logger = LoggerFactory.getLogger(AccrualBatchTest.class);
  76.  
  77. /**
  78. * SET THE DATABASE CREDS and URL
  79. */
  80. private static String url = "jdbc:db2://localhost:50000/bspdb2";
  81.  
  82. private static String username = "db2admin";
  83.  
  84. private static String password = "password123";
  85.  
  86. /**
  87. * Note to Architect : please setup an environment dependent datasource
  88. * to remove the need for commenting and uncommenting the @Test method.
  89. */
  90. @BeforeClass
  91. public static void setupClass() {
  92. //create the datasource
  93. DriverManagerDataSource datasource = new DriverManagerDataSource(url, username, password);
  94. datasource.setDriverClassName("com.ibm.db2.jcc.DB2Driver");
  95.  
  96. //bind to a jndi string
  97. SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder();
  98. builder.bind("lcmisbsp", datasource);
  99. builder.bind("${cfas.jndi.name}", datasource);
  100. builder.bind("${ops.jndi.name}", datasource);
  101.  
  102. try {
  103. builder.activate();
  104. } catch (IllegalStateException | NamingException e) {
  105. logger.error("Error setting up test class, ", e);
  106. }
  107. }
  108.  
  109.  
  110. @Test
  111. public void testRetrieveDetailedAccruals() {
  112.  
  113. PnAccrualsSpecification pnAccrualSpec = PnAccrualsSpecification.retrieveSpec()
  114. .includeAllColumns();
  115. LoanAccrualsSpecification loanAccrualSpec = LoanAccrualsSpecification.retrieveWithPnAccrualSpec(pnAccrualSpec)
  116. .includeAllColumns();
  117. BankAccrualsSpecification bankAccrualSpec = BankAccrualsSpecification.retrieveWithLoanAccrualSpec(loanAccrualSpec)
  118. .includeAllColumns()
  119. .where(SpecificationCondition.equal(BankAccrualsSpecification.TRANSACTION_ID, 63));
  120. logger.debug(bankAccrualSpec.flushSql());
  121.  
  122. Object[] arr = {63};
  123. assertThat(Arrays.equals(bankAccrualSpec.flushInputs(), arr), equalTo(true));
  124.  
  125.  
  126. }
  127.  
  128.  
  129.  
  130. public void setApplicationContext(ApplicationContext applicationContext) {
  131. this.applicationContext = applicationContext;
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement