aboutsummaryrefslogtreecommitdiffstats
path: root/guava-testlib/src/com/google/common/util/concurrent/testing/TestingExecutors.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-testlib/src/com/google/common/util/concurrent/testing/TestingExecutors.java')
-rw-r--r--guava-testlib/src/com/google/common/util/concurrent/testing/TestingExecutors.java117
1 files changed, 0 insertions, 117 deletions
diff --git a/guava-testlib/src/com/google/common/util/concurrent/testing/TestingExecutors.java b/guava-testlib/src/com/google/common/util/concurrent/testing/TestingExecutors.java
deleted file mode 100644
index 4e51d34..0000000
--- a/guava-testlib/src/com/google/common/util/concurrent/testing/TestingExecutors.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2012 The Guava Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.common.util.concurrent.testing;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableList;
-import com.google.common.primitives.Longs;
-import com.google.common.util.concurrent.AbstractFuture;
-import com.google.common.util.concurrent.AbstractListeningExecutorService;
-import com.google.common.util.concurrent.ListeningScheduledExecutorService;
-
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.Delayed;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Factory methods for {@link ExecutorService} for testing.
- *
- * @author Chris Nokleberg
- * @since 14.0
- */
-@Beta
-public final class TestingExecutors {
- private TestingExecutors() {}
-
- /**
- * Returns a {@link ScheduledExecutorService} that never executes anything.
- *
- * <p>The {@code shutdownNow} method of the returned executor always returns an empty list despite
- * the fact that everything is still technically awaiting execution.
- * The {@code getDelay} method of any {@link ScheduledFuture} returned by the executor will always
- * return the max long value instead of the time until the user-specified delay.
- */
- public static ListeningScheduledExecutorService noOpScheduledExecutor() {
- return new NoOpScheduledExecutorService();
- }
-
- private static final class NoOpScheduledExecutorService
- extends AbstractListeningExecutorService implements ListeningScheduledExecutorService {
-
- private volatile boolean shutdown;
-
- @Override public void shutdown() {
- shutdown = true;
- }
-
- @Override public List<Runnable> shutdownNow() {
- shutdown();
- return ImmutableList.of();
- }
-
- @Override public boolean isShutdown() {
- return shutdown;
- }
-
- @Override public boolean isTerminated() {
- return shutdown;
- }
-
- @Override public boolean awaitTermination(long timeout, TimeUnit unit) {
- return true;
- }
-
- @Override public void execute(Runnable runnable) {}
-
- @Override public <V> ScheduledFuture<V> schedule(
- Callable<V> callable, long delay, TimeUnit unit) {
- return NeverScheduledFuture.create();
- }
-
- @Override public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
- return NeverScheduledFuture.create();
- }
-
- @Override public ScheduledFuture<?> scheduleAtFixedRate(
- Runnable command, long initialDelay, long period, TimeUnit unit) {
- return NeverScheduledFuture.create();
- }
-
- @Override public ScheduledFuture<?> scheduleWithFixedDelay(
- Runnable command, long initialDelay, long delay, TimeUnit unit) {
- return NeverScheduledFuture.create();
- }
-
- private static class NeverScheduledFuture<V>
- extends AbstractFuture<V> implements ScheduledFuture<V> {
-
- static <V> NeverScheduledFuture<V> create() {
- return new NeverScheduledFuture<V>();
- }
-
- @Override public long getDelay(TimeUnit unit) {
- return Long.MAX_VALUE;
- }
-
- @Override public int compareTo(Delayed other) {
- return Longs.compare(getDelay(TimeUnit.NANOSECONDS), other.getDelay(TimeUnit.NANOSECONDS));
- }
- }
- }
-}