/* * SerialExecutorTest.java * * Created on Jun 30, 2008, 6:04:42 PM * * Description: . * * Copyright (C) Mar 17, 2010 reed. * * This program is free software; you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.texai.util; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; import org.apache.log4j.Logger; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; /** * * @author reed */ public class SerialExecutorTest { /** the logger */ private static final Logger LOGGER = Logger.getLogger(SerialExecutorTest.class); /** the executor service */ private final ExecutorService executorService = Executors.newCachedThreadPool(); /** the task counter */ private static final AtomicInteger counter = new AtomicInteger(0); public SerialExecutorTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() { } @After public void tearDown() { } /** * Test of execute method, of class SerialExecutor. */ @Test public void testExecute() { LOGGER.info("execute"); SerialExecutor instance = new SerialExecutor(executorService); for (int i = 0; i < 100; i++) { instance.execute(new TestTask()); } } /** Provides a test task runnable that increments and logs the task counter. */ static class TestTask implements Runnable { /** Constructs a new TestTask instance. */ TestTask() { } /** Executes the test task. */ @Override public void run() { counter.addAndGet(1); LOGGER.info("counter: " + counter.toString()); } } }