package org.threadly.concurrent.wrapper.limiter; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.threadly.concurrent.SameThreadSubmitterExecutor; import org.threadly.concurrent.UnfairExecutor; @SuppressWarnings("javadoc") public class KeyedExecutorLimiterTest extends AbstractKeyedLimiterTest { protected UnfairExecutor executor; @Before public void setup() { executor = new UnfairExecutor(13); } @After public void cleanup() { executor.shutdownNow(); executor = null; } @Override protected AbstractKeyedLimiter<?> makeLimiter(int limit) { return new KeyedExecutorLimiter(executor, limit, null, true, 1); } @Test @SuppressWarnings("unused") public void constructorFail() { try { new KeyedExecutorLimiter(null, 10); fail("Exception should have thrown"); } catch (IllegalArgumentException e) { // expected } try { new KeyedExecutorLimiter(SameThreadSubmitterExecutor.instance(), 0); fail("Exception should have thrown"); } catch (IllegalArgumentException e) { // expected } } }