@Test public void verifyGracePeriod() throws InterruptedException, ExecutionException, TimeoutException { final long lookupDelay = 250; final long waitTime = 500; final long gracePeriod = 5000; // How long do we try? final long initialDelay = 1000; // Delay before service is made available verifyConsiderPeriods(lookupDelay, waitTime, gracePeriod, initialDelay); }
@Test public void verifyAlwaysWaits() throws InterruptedException, ExecutionException, TimeoutException { final long lookupDelay = 250; final long gracePeriod = 0; final long initialDelay = 1000; // Delay before service is made available final long waitPeriod = 5000; verifyConsiderPeriods(lookupDelay, waitPeriod, gracePeriod, initialDelay); }
private static void verifyConsiderPeriods(long lookupDelay, long waitTime, long gracePeriod, long initialDelay) throws InterruptedException, ExecutionException, TimeoutException { final ServiceRegistry serviceRegistry = new DefaultServiceRegistry(); final ServiceLookup<Class<?>, String> serviceLookup = new ServiceLookupBuilder(new ServiceRegistryLookup(serviceRegistry)) .blocking(gracePeriod, lookupDelay, waitTime) .build(); verifyConsiderPeriods(serviceLookup, () -> Date.class, () -> serviceRegistry.register(new Date(), Date.class), initialDelay, lookupDelay); }