@Override public boolean equals(@Nullable Object obj) { if (this == obj) { return true; } if (!(obj instanceof LockResponse)) { return false; } return token.equals(((LockResponse) obj).token) && lockHolders.equals(((LockResponse) obj).getLockHolders()) && isBlockAndRelease == ((LockResponse) obj).isBlockAndRelease(); }
@Test public void testSerialisationAndDeserialisationOfLockResponseWithLockHolders() throws Exception { HeldLocksToken token = LockServiceTestUtils.getFakeHeldLocksToken("client A", "Fake thread", new BigInteger("1"), "held-lock-1", "logger-lock"); Map<LockDescriptor, LockClient> lockHolders = ImmutableMap.of(StringLockDescriptor.of("lock_id"), LockClient.ANONYMOUS, StringLockDescriptor.of("lock_id2"), LockClient.of("client")); LockResponse response = new LockResponse(token, lockHolders); ObjectMapper mapper = new ObjectMapper(); LockResponse deserializedLockResponse = mapper.readValue(mapper.writeValueAsString(response), LockResponse.class); assertEquals(lockHolders, deserializedLockResponse.getLockHolders()); }
LockResponse response1 = server.lockWithFullLockResponse(LockClient.ANONYMOUS, request1); Assert.assertTrue(response1.success()); Assert.assertTrue(response1.getLockHolders().isEmpty()); HeldLocksToken token1 = response1.getToken(); Assert.assertNotNull(token1);
LockResponse response = server.lockWithFullLockResponse(client, request); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); HeldLocksToken token1 = response.getToken(); Assert.assertNotNull(token1); .blockForAtMost(SimpleTimeDuration.of(10, TimeUnit.MILLISECONDS)).build()); Assert.assertFalse(response1.success()); Assert.assertFalse(response1.getLockHolders().isEmpty()); Assert.assertEquals(ImmutableSortedMap.of(lock2, client), response1.getLockHolders()); HeldLocksToken nullToken = response1.getToken(); Assert.assertNull(nullToken); .blockForAtMost(SimpleTimeDuration.of(100, TimeUnit.MILLISECONDS)).build()); Assert.assertTrue(response1.success()); Assert.assertTrue(response1.getLockHolders().isEmpty()); HeldLocksToken validToken = response1.getToken(); Assert.assertNotNull(validToken); .blockForAtMost(SimpleTimeDuration.of(0, TimeUnit.MILLISECONDS)).build()); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); HeldLocksToken anonymousReadToken = response.getToken(); Assert.assertNotNull(anonymousReadToken); .blockForAtMost(SimpleTimeDuration.of(10, TimeUnit.MILLISECONDS)).build()); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); HeldLocksToken token2 = response.getToken();
@Override public boolean equals(@Nullable Object obj) { if (this == obj) { return true; } if (!(obj instanceof LockResponse)) { return false; } return token.equals(((LockResponse) obj).token) && lockHolders.equals(((LockResponse) obj).getLockHolders()) && isBlockAndRelease == ((LockResponse) obj).isBlockAndRelease(); }
LockResponse response = server.lockWithFullLockResponse(client, request); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); response = server.lockWithFullLockResponse(LockClient.ANONYMOUS, request); Assert.assertTrue(response.success()); Assert.assertFalse(response.getLockHolders().isEmpty()); Assert.assertEquals(ImmutableMap.of(lock3, client), response.getLockHolders()); HeldLocksToken token = response.getToken(); Assert.assertEquals(LockClient.ANONYMOUS, token.getClient()); response = server.lockWithFullLockResponse(LockClient.ANONYMOUS, request); Assert.assertTrue(response.success()); Assert.assertFalse(response.getLockHolders().isEmpty()); Assert.assertEquals(ImmutableMap.of(lock4, client), response.getLockHolders()); token = response.getToken(); Assert.assertEquals(LockClient.ANONYMOUS, token.getClient()); response = server.lockWithFullLockResponse(LockClient.ANONYMOUS, request); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); token = response.getToken(); Assert.assertEquals(LockClient.ANONYMOUS, token.getClient()); response = server.lockWithFullLockResponse(LockClient.ANONYMOUS, request); Assert.assertFalse(response.success()); Assert.assertFalse(response.getLockHolders().isEmpty()); Assert.assertEquals(ImmutableSortedMap.of(lock3, client, lock4, client), response.getLockHolders()); token = response.getToken();
LockResponse response = server.lockWithFullLockResponse(client, request); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); HeldLocksToken token1 = response.getToken(); Assert.assertNotNull(token1);
LockResponse response = server.lockWithFullLockResponse(client, request); Assert.assertTrue(response.success()); Assert.assertTrue(response.getLockHolders().isEmpty()); HeldLocksToken token1 = response.getToken(); Assert.assertNotNull(token1);
LockResponse response = server.lockWithFullLockResponse(client2, requestWrite); Assert.assertFalse(response.success()); Assert.assertEquals(ImmutableMap.of(lock1, client), response.getLockHolders()); HeldLocksToken nullToken = response.getToken(); Assert.assertNull(nullToken);
System.out.println(response.getLockHolders()); Assert.assertNotNull(token2); Assert.assertEquals(LockClient.ANONYMOUS, token2.getClient());