*/
package org.opendaylight.protocol.util;
+import static com.google.common.base.Verify.verify;
import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION;
import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Optional;
import com.google.common.base.Stopwatch;
-import com.google.common.base.Verify;
import com.google.common.util.concurrent.Uninterruptibles;
import io.netty.util.concurrent.Future;
import java.util.concurrent.CountDownLatch;
}
public static <T extends Future<?>> void waitFutureSuccess(final T future) {
+ waitFutureSuccess(future, SLEEP_FOR, TimeUnit.SECONDS);
+ }
+
+ @VisibleForTesting
+ static <T extends Future<?>> void waitFutureSuccess(final T future, final long timeout, final TimeUnit unit) {
final CountDownLatch latch = new CountDownLatch(1);
future.addListener(future1 -> latch.countDown());
- Uninterruptibles.awaitUninterruptibly(latch, SLEEP_FOR, TimeUnit.SECONDS);
- Verify.verify(future.isSuccess());
+ Uninterruptibles.awaitUninterruptibly(latch, timeout, unit);
+ verify(future.isSuccess());
}
public static <R, T extends DataObject> R readDataOperational(final DataBroker dataBroker,
import io.netty.channel.ChannelFuture;
import io.netty.util.concurrent.GenericFutureListener;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public void testWaitFutureSuccessFail() {
when(this.future.isDone()).thenReturn(false);
doReturn(this.future).when(this.future).addListener(any());
- waitFutureSuccess(this.future);
+ waitFutureSuccess(this.future, 10L, TimeUnit.MILLISECONDS);
}
@Test