From 359b81060124c88acbf315ddb71e898c8738b7c9 Mon Sep 17 00:00:00 2001 From: Sahil Palvia Date: Wed, 12 Jul 2017 13:49:04 -0700 Subject: [PATCH] Adding method to lose leases. Fixing tests to do what the previous did. --- .../leases/impl/LeaseIntegrationTest.java | 6 ++++ .../impl/LeaseManagerIntegrationTest.java | 3 +- .../impl/LeaseRenewerIntegrationTest.java | 33 ++++++++++--------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseIntegrationTest.java b/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseIntegrationTest.java index 57a9c99b..7812873d 100644 --- a/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseIntegrationTest.java +++ b/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseIntegrationTest.java @@ -16,6 +16,7 @@ package com.amazonaws.services.kinesis.leases.impl; import java.util.logging.Logger; +import com.amazonaws.services.kinesis.leases.exceptions.LeasingException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Ignore; @@ -71,4 +72,9 @@ public class LeaseIntegrationTest { } }; + protected void loseLease(KinesisClientLease lease) throws LeasingException { + // Need to call update 2 times because 1st time would be considered to be spurious update for the lease. + leaseManager.updateLease(lease); + leaseManager.updateLease(lease); + } } diff --git a/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseManagerIntegrationTest.java b/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseManagerIntegrationTest.java index ea49f891..3b443f71 100644 --- a/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseManagerIntegrationTest.java +++ b/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseManagerIntegrationTest.java @@ -108,9 +108,10 @@ public class LeaseManagerIntegrationTest extends LeaseIntegrationTest { KinesisClientLease leaseCopy = leaseManager.getLease(lease.getLeaseKey()); + leaseManager.renewLease(lease); leaseManager.renewLease(lease); - Assert.assertTrue(leaseManager.renewLease(leaseCopy)); + Assert.assertFalse(leaseManager.renewLease(leaseCopy)); } /** diff --git a/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseRenewerIntegrationTest.java b/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseRenewerIntegrationTest.java index 5295229f..334dbeb2 100644 --- a/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseRenewerIntegrationTest.java +++ b/src/test/java/com/amazonaws/services/kinesis/leases/impl/LeaseRenewerIntegrationTest.java @@ -57,8 +57,10 @@ public class LeaseRenewerIntegrationTest extends LeaseIntegrationTest { builder.addLeasesToRenew(renewer, "1", "2"); KinesisClientLease renewedLease = builder.renewMutateAssert(renewer, "1", "2").get("2"); - leaseManager.updateLease(renewedLease); - builder.renewMutateAssert(renewer, "1", "2"); + // lose lease 2 + loseLease(renewedLease); + + builder.renewMutateAssert(renewer, "1"); } @Test @@ -95,9 +97,9 @@ public class LeaseRenewerIntegrationTest extends LeaseIntegrationTest { public void testGetCurrentlyHeldLeases() throws LeasingException { TestHarnessBuilder builder = new TestHarnessBuilder(leaseManager); - KinesisClientLease lease2 = builder.withLease("1", "foo").withLease("2", "foo").build().get("2"); + builder.withLease("1", "foo").withLease("2", "foo").build(); builder.addLeasesToRenew(renewer, "1", "2"); - builder.renewMutateAssert(renewer, "1", "2"); + KinesisClientLease lease2 = builder.renewMutateAssert(renewer, "1", "2").get("2"); // This should be a copy that doesn't get updated Map heldLeases = renewer.getCurrentlyHeldLeases(); @@ -105,14 +107,15 @@ public class LeaseRenewerIntegrationTest extends LeaseIntegrationTest { Assert.assertEquals((Long) 1L, heldLeases.get("1").getLeaseCounter()); Assert.assertEquals((Long) 1L, heldLeases.get("2").getLeaseCounter()); - leaseManager.updateLease(lease2); // lose lease 2 - // Do another renewal and make sure the copy doesn't change - builder.renewMutateAssert(renewer, "1", "2"); + // lose lease 2 + loseLease(lease2); + + // Do another renewal and make sure the copy doesn't change + builder.renewMutateAssert(renewer, "1"); - heldLeases = renewer.getCurrentlyHeldLeases(); Assert.assertEquals(2, heldLeases.size()); - Assert.assertEquals((Long) 2L, heldLeases.get("1").getLeaseCounter()); - Assert.assertEquals((Long) 2L, heldLeases.get("2").getLeaseCounter()); + Assert.assertEquals((Long) 1L, heldLeases.get("1").getLeaseCounter()); + Assert.assertEquals((Long) 1L, heldLeases.get("2").getLeaseCounter()); } @Test @@ -176,11 +179,11 @@ public class LeaseRenewerIntegrationTest extends LeaseIntegrationTest { KinesisClientLease lease = renewer.getCurrentlyHeldLease("1"); // cause lease loss such that the renewer knows the lease has been lost when update is called - leaseManager.renewLease(lease); - builder.renewMutateAssert(renewer, "1"); + loseLease(lease); + builder.renewMutateAssert(renewer); lease.setCheckpoint(new ExtendedSequenceNumber("new checkpoint")); - Assert.assertTrue(renewer.updateLease(lease, lease.getConcurrencyToken())); + Assert.assertFalse(renewer.updateLease(lease, lease.getConcurrencyToken())); } @Test @@ -195,8 +198,8 @@ public class LeaseRenewerIntegrationTest extends LeaseIntegrationTest { KinesisClientLease lease = renewer.getCurrentlyHeldLease("1"); // cause lease loss such that the renewer knows the lease has been lost when update is called - leaseManager.renewLease(lease); - builder.renewMutateAssert(renewer, "1"); + loseLease(lease); + builder.renewMutateAssert(renewer); // regain the lease builder.addLeasesToRenew(renewer, "1");