/** * Calculate the initial lease to use given the initial lease here and a requested initial lease. The requested * lease must be equal to or less than the initial lease here. Takes into account that a lease of 0 is an infinite * lease. * * @param requestedInitialLease Requested initial lease. * @return The smaller of the leases. * @throws InvalidClusterException if the requested lease is larger than the allowed initial lease, or if it is * less than negative one. */ public long calcInitialLease(String requestedInitialLease) throws InvalidClusterException { return calcInitialLease(getTimestamp(requestedInitialLease)); }
@Test(expected = InvalidClusterException.class) public void testInvalidNegativeRequestedLease() throws InvalidClusterException { LeaseDuration leaseDuration = LeaseDuration.of("0", "0", "0"); leaseDuration.calcInitialLease(-2); }
@Test(expected = InvalidClusterException.class) public void testRequestedLeaseTooBig() throws InvalidClusterException { LeaseDuration leaseDuration = LeaseDuration.of("5m", "0", "0"); leaseDuration.calcInitialLease("6m"); } }
@Test public void testInitialLeaseZeroIsInfinite() throws InvalidClusterException { LeaseDuration leaseDuration = LeaseDuration.of("0", "0", "0"); Assert.assertEquals(Long.MAX_VALUE, leaseDuration.calcInitialLease(Long.MAX_VALUE)); }
@Test public void testCalcInitialLease() throws InvalidClusterException { LeaseDuration leaseDuration = LeaseDuration.of("15m", "0", "0"); Assert.assertEquals(2000, leaseDuration.calcInitialLease("2s")); }
@Test public void testCalcInitialLeaseNegativeOne() throws InvalidClusterException { LeaseDuration leaseDuration = LeaseDuration.of("5m", "0", "0"); Assert.assertEquals(300000, leaseDuration.calcInitialLease(-1)); }
long leaseDuration = template.getAdministration().getLeaseDuration().calcInitialLease(requestedLease); long createTime = System.currentTimeMillis(); builder.setCreateTime(createTime);