public void testTaskCompletedForCallingShutDown() { final Vector<Boolean> callList = new Vector<Boolean>(); CorpActionDownloadManager manager = new CorpActionDownloadManager(null) { { totalTaskCount = 2; completedTaskCount = 1; } @Override void performConsolidation(CorpActionDownloader completedTask) {} @Override protected void addToInCompleteList(String completedTask) {} @Override void shutDownManager() { callList.add(true); } }; CorpActionDownloader downloader = new CorpActionDownloader("", null) { @Override public boolean isCompleted() { return false; } }; manager.taskCompleted(downloader); assertEquals(100, manager.getProgress()); assertTrue(manager.isTaskCompleted()); assertEquals(1, callList.size()); }
/* * Test method for * 'pm.net.nse.CorpActionDownloadManager.performConsolidation(CorpActionDownloader)' */ public void testPerformConsolidation() throws Exception { CorpActionDownloadManager manager = new CorpActionDownloadManager(null) { PMDate date1 = new PMDate(1, 1, 2005); { Vector<CompanyActionVO> vector = new Vector<CompanyActionVO>(); vector.add(new CompanyActionVO("20050101,STOCK,1,10,Split,false,")); htConsolidatedCorpAction.put(date1, vector); } @Override void shutDownManager() { assertEquals(2, htConsolidatedCorpAction.size()); assertEquals(2, htConsolidatedCorpAction.get(date1).size()); assertEquals( "STOCK", htConsolidatedCorpAction.get(date1).firstElement().getStockCode()); assertEquals( "STOCK2", htConsolidatedCorpAction.get(date1).lastElement().getStockCode()); PMDate date2 = new PMDate(2, 1, 2005); assertEquals(1, htConsolidatedCorpAction.get(date2).size()); assertEquals( "STOCK2", htConsolidatedCorpAction.get(date2).lastElement().getStockCode()); } }; CorpActionDownloader downloader = new CorpActionDownloader("", manager) { @Override public Vector<CompanyActionVO> getCorpActions() { Vector<CompanyActionVO> retVal = new Vector<CompanyActionVO>(); try { retVal.add(new CompanyActionVO("20050101,STOCK2,1,10,Split,false,")); retVal.add(new CompanyActionVO("20050102,STOCK2,1,10,Split,false,")); } catch (Exception e) { } return retVal; } }; manager.performConsolidation(downloader); manager.shutDownManager(); // all tests r down inside that }
public void testTaskCompletedForInCompletedTask() { final Vector<String> callList = new Vector<String>(); CorpActionDownloadManager manager = new CorpActionDownloadManager(null) { { totalTaskCount = 5; completedTaskCount = 1; } @Override void performConsolidation(CorpActionDownloader completedTask) { fail("Should come only if Task is complete"); } protected void addToInCompleteList(String completedTask) { callList.add(completedTask); } @Override void shutDownManager() { fail("Should come only if all tasks are complete"); } }; String stockCode = "STOCK1"; CorpActionDownloader downloader = new CorpActionDownloader(stockCode, null) { @Override public boolean isCompleted() { return false; } }; manager.taskCompleted(downloader); assertEquals(1, callList.size()); assertTrue(callList.contains(stockCode)); assertEquals(40, manager.getProgress()); assertFalse(manager.isTaskCompleted()); }
public void testShutDownManager() throws Exception { String strLastDate = AppConfig.dateCORPACTIONDOWNLOADMANAGER.Value; String strInCompleteList = AppConfig.corpActionDownloadErrorList.Value; Hashtable<PMDate, Vector<CompanyActionVO>> htConsidated = new Hashtable<PMDate, Vector<CompanyActionVO>>(); final Mock compayDAOMock = new Mock(CompanyDAO.class); compayDAOMock.expects(once()).method("writeConsolidatedActionData").with(eq(htConsidated)); final Mock synchronizerMock = new Mock(CorpActionSynchronizer.class); synchronizerMock.expects(once()).method("applyCorpAction").withNoArguments(); CorpActionDownloadManager manager = new CorpActionDownloadManager(null) { { inCompleteList = new Vector<String>(); inCompleteList.add(STOCKCODE1); } @Override CompanyDAO getCompanyDAO() { return (CompanyDAO) compayDAOMock.proxy(); } CorpActionSynchronizer getSynchronizer() { return (CorpActionSynchronizer) synchronizerMock.proxy(); } }; manager.shutDownManager(); assertTrue( PMDateFormatter.formatYYYYMMDD(new PMDate()) .equals(AppConfig.dateCORPACTIONDOWNLOADMANAGER.Value)); assertTrue(STOCKCODE1.equals(AppConfig.corpActionDownloadErrorList.Value)); AppConfig.dateCORPACTIONDOWNLOADMANAGER.Value = strLastDate; AppConfig.corpActionDownloadErrorList.Value = strInCompleteList; AppConfig.saveConfigDetails(); compayDAOMock.verify(); synchronizerMock.verify(); }
public void testProgressData() throws InterruptedException { final Vector<Integer> terminateDetails = new Vector<Integer>(); int maxThreadCount = 2; ThreadPoolExecutor executor = new ThreadPoolExecutor( maxThreadCount, maxThreadCount, 0L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); CorpActionDownloadManager manager = new CorpActionDownloadManager(executor) { @Override protected Vector<String> getStockList() { Vector<String> retVal = new Vector<String>(); retVal.add(STOCKCODE1); retVal.add(STOCKCODE2); retVal.add(STOCKCODE3); return retVal; } @Override CompanyDAO getCompanyDAO() { return new CompanyDAO() { @Override public Hashtable<PMDate, Vector<CompanyActionVO>> getConsolidatedActionData() { return new Hashtable<PMDate, Vector<CompanyActionVO>>(); } @Override public boolean writeConsolidatedActionData( Hashtable<PMDate, Vector<CompanyActionVO>> consolidatedData) { return true; } }; } @Override CorpActionDownloader createDownloader(String stockCode) { return new CorpActionDownloader(stockCode, this) { @Override protected void performTask() { int waitCount = 0; if (getStockCode().equals(STOCKCODE1)) { waitCount = 1; } else if (getStockCode().equals(STOCKCODE2)) { waitCount = 2; } else { waitCount = 3; } while (terminateDetails.size() < waitCount) { Thread.yield(); } } }; } @Override void shutDownManager() {} }; manager.run(); assertEquals(100, manager.getTaskLength()); assertEquals(0, manager.getProgress()); terminateDetails.add(1); Thread.sleep(100); assertEquals(33, manager.getProgress()); assertFalse(manager.isTaskCompleted()); terminateDetails.add(2); Thread.sleep(100); assertEquals(66, manager.getProgress()); assertFalse(manager.isTaskCompleted()); terminateDetails.add(3); Thread.sleep(100); assertEquals(100, manager.getProgress()); assertTrue(manager.isTaskCompleted()); }
public void testRunToIgnoreStoredConsolidatedDataWhenUsingCompleteList() throws InterruptedException { int maxThreadCount = 2; ThreadPoolExecutor executor = new ThreadPoolExecutor( maxThreadCount, maxThreadCount, 0L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); final Vector<Boolean> callList = new Vector<Boolean>(); final Hashtable<PMDate, Vector<CompanyActionVO>> storedData = new Hashtable<PMDate, Vector<CompanyActionVO>>(); final Vector<String> storedInCompleteList = new Vector<String>(); final Mock synchronizerMock = new Mock(CorpActionSynchronizer.class); synchronizerMock.expects(once()).method("applyCorpAction").withNoArguments(); CorpActionDownloadManager manager = new CorpActionDownloadManager(executor) { @Override CompanyDAO getCompanyDAO() { return new CompanyDAO() { @Override public Hashtable<PMDate, Vector<CompanyActionVO>> getConsolidatedActionData() { Hashtable<PMDate, Vector<CompanyActionVO>> retVal = new Hashtable<PMDate, Vector<CompanyActionVO>>(); Vector<CompanyActionVO> vector = new Vector<CompanyActionVO>(); try { vector.add(new CompanyActionVO("20050101,STOCK,1,10,Split,false,")); } catch (Exception e) { } retVal.put(new PMDate(1, 1, 2005), vector); return retVal; } @Override public boolean writeConsolidatedActionData( Hashtable<PMDate, Vector<CompanyActionVO>> consolidatedData) { storedData.putAll(consolidatedData); return true; } }; } CorpActionSynchronizer getSynchronizer() { return (CorpActionSynchronizer) synchronizerMock.proxy(); } @Override CorpActionDownloader createDownloader(String stockCode) { CorpActionDownloader corpActionDownloader; if (stockCode.equals(STOCKCODE1)) { corpActionDownloader = new CorpActionDownloader(stockCode, this) { @Override protected void performTask() {} @Override public Vector<CompanyActionVO> getCorpActions() { Vector<CompanyActionVO> vector = new Vector<CompanyActionVO>(); try { vector.add(new CompanyActionVO("20050102,STOCK1,1,10,Split,false,")); } catch (Exception e) { } return vector; } }; } else { corpActionDownloader = new CorpActionDownloader(stockCode, this) { @Override protected void performTask() {} @Override public boolean isCompleted() { return false; } }; } return corpActionDownloader; } @Override protected void storeIncompleteList() { storedInCompleteList.addAll(inCompleteList); } @Override protected void saveStatus() {} @Override void shutDownManager() { super.shutDownManager(); callList.add(true); } @Override protected Vector<String> getCompleteList() { flagCompleteListLoaded = true; Vector<String> completeList = new Vector<String>(); completeList.add(STOCKCODE1); completeList.add(STOCKCODE2); completeList.add(STOCKCODE3); return completeList; } }; AppConfig.corpActionDownloadErrorList.Value = STOCKCODE1 + "," + STOCKCODE2; AppConfig.dateCORPACTIONDOWNLOADMANAGER.Value = "20010101"; manager.run(); executor.awaitTermination(1, TimeUnit.SECONDS); assertEquals(1, callList.size()); assertTrue(callList.firstElement()); assertEquals(1, storedData.size()); assertEquals(1, storedData.elements().nextElement().size()); assertEquals("STOCK1", storedData.values().iterator().next().firstElement().getStockCode()); assertEquals(2, storedInCompleteList.size()); assertTrue(storedInCompleteList.contains(STOCKCODE2)); assertTrue(storedInCompleteList.contains(STOCKCODE3)); }