mirror of https://github.com/apache/jclouds.git
Added unit tests for the timeunit field and fixed javadoc
This commit is contained in:
parent
25bd57379d
commit
7bd6b016ab
|
@ -176,8 +176,7 @@ public class BaseMonitoringService implements MonitoringService {
|
|||
* Performs the periodical monitoring tasks.
|
||||
*
|
||||
* @author Ignasi Barrera
|
||||
* @param <T>
|
||||
* The type of the object being monitored.
|
||||
* @param <T> The type of the object being monitored.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
class AsyncMonitor<T> implements Runnable {
|
||||
|
@ -205,10 +204,13 @@ public class BaseMonitoringService implements MonitoringService {
|
|||
/**
|
||||
* Starts the monitoring job with the given timeout.
|
||||
*
|
||||
* @param maxWait
|
||||
* The timeout.
|
||||
* @param maxWait The timeout.
|
||||
* @param timeUnit The timeunit used in the maxWait parameter.
|
||||
*/
|
||||
public void startMonitoring(final Long maxWait, TimeUnit timeUnit) {
|
||||
if (maxWait != null) {
|
||||
checkNotNull(timeUnit, "timeUnit must not be null when using timeouts");
|
||||
}
|
||||
future = scheduler.scheduleWithFixedDelay(this, 0L, pollingDelay, TimeUnit.MILLISECONDS);
|
||||
timeout = maxWait == null ? null : System.currentTimeMillis() + timeUnit.toMillis(maxWait);
|
||||
logger.debug("started monitor job for %s with %s timeout", monitoredObject,
|
||||
|
|
|
@ -78,6 +78,42 @@ public class AsyncMonitorTest {
|
|||
verify(schedulerMock);
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "timeUnit must not be null when using timeouts")
|
||||
public void testStartMonitoringWithNullTimeout() {
|
||||
ScheduledExecutorService schedulerMock = EasyMock.createMock(ScheduledExecutorService.class);
|
||||
AsyncMonitor<Object> monitor = mockMonitor(schedulerMock, new Object(), mockFunction(MonitorStatus.DONE),
|
||||
new EventBus());
|
||||
|
||||
monitor.startMonitoring(100L, null);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public void testStartMonitoringWithoutTimeoutAndNullTimeUnit() {
|
||||
ScheduledFuture mockFuture = EasyMock.createMock(ScheduledFuture.class);
|
||||
ScheduledExecutorService schedulerMock = EasyMock.createMock(ScheduledExecutorService.class);
|
||||
expect(
|
||||
schedulerMock.scheduleWithFixedDelay(anyObject(Runnable.class), anyLong(), anyLong(),
|
||||
anyObject(TimeUnit.class))).andReturn(mockFuture);
|
||||
|
||||
replay(mockFuture);
|
||||
replay(schedulerMock);
|
||||
|
||||
AsyncMonitor<Object> monitor = mockMonitor(schedulerMock, new Object(), mockFunction(MonitorStatus.DONE),
|
||||
new EventBus());
|
||||
|
||||
assertNull(monitor.getFuture());
|
||||
assertNull(monitor.getTimeout());
|
||||
|
||||
// If the maxWait parameter is null, timeUnit is not required
|
||||
monitor.startMonitoring(null, null);
|
||||
|
||||
assertNotNull(monitor.getFuture());
|
||||
assertNull(monitor.getTimeout());
|
||||
|
||||
verify(mockFuture);
|
||||
verify(schedulerMock);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public void testStartMonitoringWithTimeout() {
|
||||
ScheduledFuture mockFuture = EasyMock.createMock(ScheduledFuture.class);
|
||||
|
@ -105,6 +141,33 @@ public class AsyncMonitorTest {
|
|||
verify(schedulerMock);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public void testStartMonitoringWithTimeoutInMinutes() {
|
||||
ScheduledFuture mockFuture = EasyMock.createMock(ScheduledFuture.class);
|
||||
ScheduledExecutorService schedulerMock = EasyMock.createMock(ScheduledExecutorService.class);
|
||||
expect(
|
||||
schedulerMock.scheduleWithFixedDelay(anyObject(Runnable.class), anyLong(), anyLong(),
|
||||
anyObject(TimeUnit.class))).andReturn(mockFuture);
|
||||
|
||||
replay(mockFuture);
|
||||
replay(schedulerMock);
|
||||
|
||||
AsyncMonitor<Object> monitor = mockMonitor(schedulerMock, new Object(), mockFunction(MonitorStatus.DONE),
|
||||
new EventBus());
|
||||
|
||||
assertNull(monitor.getFuture());
|
||||
assertNull(monitor.getTimeout());
|
||||
|
||||
monitor.startMonitoring(1L, TimeUnit.MINUTES);
|
||||
|
||||
assertNotNull(monitor.getFuture());
|
||||
assertNotNull(monitor.getTimeout());
|
||||
assertTrue(monitor.getTimeout() > TimeUnit.MINUTES.toMillis(1));
|
||||
|
||||
verify(mockFuture);
|
||||
verify(schedulerMock);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public void testIsTimeoutWhenNullTimeout() {
|
||||
ScheduledFuture mockFuture = EasyMock.createMock(ScheduledFuture.class);
|
||||
|
|
Loading…
Reference in New Issue