/** * */ package org.egov.collection.services; /** * JUnit Test cases for Receipt Header Service */ public class ReceiptHeaderServiceTest { /* extends AbstractPersistenceServiceTest<ReceiptHeader, Long> { private ReceiptHeaderService receiptHeaderService; //private WorkflowService<ReceiptHeader> receiptWorkflowService; private CollectionObjectFactory objectFactory; private FinancialsUtil financialsUtil; private CollectionsUtil collectionsUtil; @Autowired AppConfigValuesDAO appConfigValuesDAO; private EisCommonsManager eisCommonsManagerMock; private CreateVoucher voucherCreatorMock; private static final String functionName = "SUBMIT-COLLECTION-FUNC"; private static final String glCode = "99"; private final Double instrumentAmount = Double.valueOf("1000"); private final Date instrumentDate = new Date(); private static final String instrumentStatusCode = "testCode"; private static final String userName = "testUser"; private static final String counterName = "testCounter"; private ReceiptHeader receiptToBeSubmitted; private ReceiptHeader receiptToBeApproved; private static ClassPathXmlApplicationContext context; *//** * Creates the receipts used for testing *//* private void createReceipts() { receiptToBeSubmitted = objectFactory .createReceiptHeaderWithInstrument( "RCPT-1111", CollectionConstants.RECEIPT_TYPE_BILL, CollectionConstants.RECEIPT_STATUS_CODE_TO_BE_SUBMITTED, "BILL-1111", financialsUtil .getInstrumentTypeByType(CollectionConstants.INSTRUMENTTYPE_CASH), null, instrumentAmount, instrumentDate, instrumentStatusCode, glCode, functionName, userName, counterName); receiptToBeApproved = objectFactory .createReceiptHeaderWithInstrument( "RCPT-2222", CollectionConstants.RECEIPT_TYPE_BILL, CollectionConstants.RECEIPT_STATUS_CODE_SUBMITTED, "BILL-2222", financialsUtil .getInstrumentTypeByType(CollectionConstants.INSTRUMENTTYPE_CASH), null, instrumentAmount, instrumentDate, instrumentStatusCode, glCode, functionName, userName, counterName); } @Before public void setupService() { if (context == null) { context = new ClassPathXmlApplicationContext( "erpCollectionsAppContextTest.xml"); } objectFactory = new CollectionObjectFactory(session); collectionsUtil = (CollectionsUtil) context.getBean("collectionsUtil"); financialsUtil = (FinancialsUtil) context.getBean("financialsUtil"); voucherCreatorMock = org.easymock.classextension.EasyMock .createMock(CreateVoucher.class); financialsUtil.setVoucherCreator(voucherCreatorMock); CollectionsNumberGenerator numberGenerator = (CollectionsNumberGenerator) context .getBean("collectionsNumberGenerator"); eisCommonsManagerMock = org.easymock.EasyMock .createMock(EisCommonsManager.class); collectionsUtil.setEisCommonsManager(eisCommonsManagerMock); genericHibDao = new GenericHibernateDaoFactory(){ protected Session getCurrentSession(){ return session; } public AppDataDAO getAppDataDAO() { return new AppDataHibernateDAO(AppData.class,session); } }; collectionsUtil.setGenericDao(genericHibDao); receiptHeaderService = new ReceiptHeaderService(); receiptHeaderService.setCollectionsUtil(collectionsUtil); receiptHeaderService.setFinancialsUtil(financialsUtil); receiptHeaderService.setCollectionsNumberGenerator(numberGenerator); receiptWorkflowService = new SimpleWorkflowService<ReceiptHeader>( receiptHeaderService, ReceiptHeader.class); receiptHeaderService.setReceiptWorkflowService(receiptWorkflowService); // Create receipts createReceipts(); } @Test public void testFindAllByStatusUserCounterService() { // Search for the "to be submitted" receipt List<ReceiptHeader> receiptHeadersFound = receiptHeaderService .findAllByStatusUserCounterService( CollectionConstants.RECEIPT_STATUS_CODE_TO_BE_SUBMITTED, receiptToBeSubmitted.getCreatedBy().getUserName(), receiptToBeSubmitted.getLocation().getId(), receiptToBeSubmitted.getService().getCode()); assertNotNull(receiptHeadersFound); assertTrue(receiptHeadersFound.size() > 0); assertTrue(receiptHeadersFound.contains(receiptToBeSubmitted)); // Search for all receipts receiptHeadersFound = receiptHeaderService .findAllByStatusUserCounterService("ALL", "ALL", -1, "ALL"); assertNotNull(receiptHeadersFound); assertTrue(receiptHeadersFound.size() > 1); assertTrue(receiptHeadersFound.contains(receiptToBeSubmitted)); assertTrue(receiptHeadersFound.contains(receiptToBeApproved)); } @Test public void testInternalReferenceNumberForCash() { ReceiptHeader receiptHeader = objectFactory .createUnsavedReceiptHeader(); receiptHeader.setReceiptnumber("ReceiptNo"); receiptHeader .addInstrument(objectFactory .createUnsavedInstrumentHeader( objectFactory .createUnsavedRegularInstrumentType(CollectionConstants.INSTRUMENTTYPE_CASH), objectFactory .createUnsavedEgwStatus( "testStatus", CollectionConstants.RECEIPT_STATUS_DESC_CREATED))); CFinancialYear financialYear = collectionsUtil.getFinancialYearforDate( receiptHeader.getCreatedDate()); List<String> actualinternalRefNo = receiptHeaderService .generateInternalReferenceNo(receiptHeader); String actualSeqNo = actualinternalRefNo.get(0).substring(0, actualinternalRefNo.get(0).lastIndexOf('/')); List numbers = session.createSQLQuery( "SELECT VALUE FROM EG_NUMBER_GENERIC WHERE OBJECTTYPE=?") .setString(0, "RECEIPTREF").list(); BigDecimal result; if (numbers != null && !numbers.isEmpty()) result = (BigDecimal) numbers.get(0); else result = new BigDecimal(0); String cashsequence = "0000" + (result.longValue() + 1); cashsequence = cashsequence.substring(cashsequence.length() - 4, cashsequence.length()); String expectedResult1 = cashsequence + "/" + financialYear.getFinYearRange().substring(0, 5) + financialYear.getFinYearRange().substring(7); assertEquals(2, actualinternalRefNo.size()); } @Test public void testInternalReferenceNumberForCheque() { ReceiptHeader receiptHeader = objectFactory .createUnsavedReceiptHeader(); receiptHeader.setReceiptnumber("ReceiptNo"); receiptHeader .addInstrument(objectFactory .createUnsavedInstrumentHeader( objectFactory .createUnsavedRegularInstrumentType(CollectionConstants.INSTRUMENTTYPE_CHEQUE), objectFactory .createUnsavedEgwStatus( "testStatus", CollectionConstants.RECEIPT_STATUS_DESC_CREATED))); CFinancialYear financialYear = collectionsUtil.getFinancialYearforDate(receiptHeader.getCreatedDate()); List<String> actualinternalRefNo = receiptHeaderService .generateInternalReferenceNo(receiptHeader); String actualSeqNo = actualinternalRefNo.get(1).substring(0, actualinternalRefNo.get(1).lastIndexOf('/')); List numbers = session.createSQLQuery( "SELECT VALUE FROM EG_NUMBER_GENERIC WHERE OBJECTTYPE=?") .setString(0, "RECEIPTREF").list(); BigDecimal result; if (numbers != null && !numbers.isEmpty()) result = (BigDecimal) numbers.get(0); else result = new BigDecimal(0); String cashsequence = "000000" + (result.longValue() + 1); cashsequence = cashsequence.substring(cashsequence.length() - 6, cashsequence.length()); String expectedResult1 = cashsequence + "/" + financialYear.getFinYearRange().substring(0, 5) + financialYear.getFinYearRange().substring(7); assertEquals(2, actualinternalRefNo.size()); // assertEquals(expectedResult1,actualinternalRefNo.get(1)); } //@Test public void testStartWorkflow() { Collection<ReceiptHeader> receipts = new ArrayList<ReceiptHeader>(); receipts.add(receiptToBeSubmitted); // receipts.add(receiptToBeApproved); EasyMock.expect( eisCommonsManagerMock.getCurrentPositionByUser((User) EasyMock .isA(UserImpl.class))).andReturn( objectFactory.createPosition()); EasyMock.expect( eisCommonsManagerMock.getCurrentPositionByUser((User) EasyMock .isA(UserImpl.class))).andReturn( objectFactory.createPosition()); EasyMock.expect( eisCommonsManagerMock.getPositionByName("COLLECTIONS_MANAGER")) .andReturn(objectFactory.createPosition()); EasyMock.expect( eisCommonsManagerMock.getCurrentPositionByUser((User) EasyMock .isA(UserImpl.class))).andReturn( objectFactory.createPosition()); EasyMock.expect( eisCommonsManagerMock.getPositionByName("COLLECTIONS_MANAGER")) .andReturn(objectFactory.createPosition()); EasyMock.replay(eisCommonsManagerMock); org.easymock.classextension.EasyMock.expect( voucherCreatorMock .createVoucher( org.easymock.classextension.EasyMock .isA(HashMap.class), org.easymock.classextension.EasyMock .isA(List.class), org.easymock.classextension.EasyMock .isA(List.class))).andReturn( objectFactory.createVoucher("testVoucher")); org.easymock.classextension.EasyMock.replay(voucherCreatorMock); receiptHeaderService.startWorkflow(receipts,Boolean.FALSE); EasyMock.verify(eisCommonsManagerMock); org.easymock.classextension.EasyMock.verify(voucherCreatorMock); assertNotNull(receiptToBeSubmitted.getState()); assertTrue(receiptToBeSubmitted.getState().getValue().equals(CollectionConstants.WF_STATE_VOUCHER_CREATED)); } @Test public void testcheckIfMapObjectExist(){ List<HashMap<String, Object>> paramList=new ArrayList<HashMap<String,Object>>(); HashMap<String, Object> objHashMap=new HashMap<String, Object>(); objHashMap.put(CollectionConstants.BANKREMITTANCE_VOUCHERDATE, "12/12/2009"); objHashMap.put(CollectionConstants.BANKREMITTANCE_SERVICENAME, "Test Service 1"); objHashMap.put(CollectionConstants.BANKREMITTANCE_FUNDCODE, "TestFund"); objHashMap.put(CollectionConstants.BANKREMITTANCE_DEPARTMENTCODE, "TestDept"); paramList.add(objHashMap); Object[] arrayObjectInitialIndex=new Object[8]; arrayObjectInitialIndex[0]="1000"; arrayObjectInitialIndex[1]="12/12/2009"; arrayObjectInitialIndex[2]="Test Service 1"; arrayObjectInitialIndex[3]=""; arrayObjectInitialIndex[4]=""; arrayObjectInitialIndex[5]=""; arrayObjectInitialIndex[6]="TestFund"; arrayObjectInitialIndex[7]="TestDept"; assertEquals(0, receiptHeaderService.checkIfMapObjectExist(paramList, arrayObjectInitialIndex)); } @Test public void testcheckIfMapObjectNotExist(){ List<HashMap<String, Object>> paramList=new ArrayList<HashMap<String,Object>>(); HashMap<String, Object> objHashMap=new HashMap<String, Object>(); objHashMap.put("VOUCHERDATE", "12/12/2009"); objHashMap.put("SERVICENAME", "Test Service 1"); paramList.add(objHashMap); Object[] arrayObjectInitialIndex=new Object[3]; arrayObjectInitialIndex[0]="1000"; arrayObjectInitialIndex[1]="13/12/2009"; arrayObjectInitialIndex[2]="Test Service 2"; assertEquals(-1, receiptHeaderService.checkIfMapObjectExist(paramList, arrayObjectInitialIndex)); } @Test public void testReceiptDetailObjectExist(){ List<ReceiptDetail> newReceiptDetailList=new ArrayList<ReceiptDetail>(); ReceiptDetail receiptDetailObj= objectFactory.createReceiptDetailWithoutHeader(); newReceiptDetailList.add(receiptDetailObj); assertEquals(0,receiptHeaderService.checkIfReceiptDetailObjectExist(newReceiptDetailList, receiptDetailObj)); } @Test public void testaggregateDuplicateReceiptDetailObject(){ List<ReceiptDetail> newReceiptDetailListDiffCOA=new ArrayList<ReceiptDetail>(); List<ReceiptDetail> newReceiptDetailListSameCOA=new ArrayList<ReceiptDetail>(); ReceiptDetail receiptDetailObj1= objectFactory.createReceiptDetailWithoutHeader(); ReceiptDetail receiptDetailObj2= objectFactory.createReceiptDetailWithoutHeader(); ReceiptDetail receiptDetailObj3= objectFactory.createReceiptDetailWithoutHeader(); ReceiptDetail receiptDetailObj4= objectFactory.createReceiptDetailWithoutHeader(); newReceiptDetailListDiffCOA.add(receiptDetailObj1); newReceiptDetailListDiffCOA.add(receiptDetailObj2); CChartOfAccounts account1=objectFactory.createCOA("testGLCode1"); receiptDetailObj3.setAccounthead(account1); receiptDetailObj4.setAccounthead(account1); newReceiptDetailListSameCOA.add(receiptDetailObj3); newReceiptDetailListSameCOA.add(receiptDetailObj4); assertEquals(1,receiptHeaderService.aggregateDuplicateReceiptDetailObject(newReceiptDetailListSameCOA).size()); assertEquals(2,receiptHeaderService.aggregateDuplicateReceiptDetailObject(newReceiptDetailListDiffCOA).size()); } */ }