コード例 #1
0
  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());
  }
コード例 #2
0
  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());
  }
コード例 #3
0
  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());
  }