@Test public void testAcquireAndMutate() throws Exception { final String row = "testAcquireAndMutate"; final String dataColumn = "data"; final String value = "test"; ColumnPrefixUniquenessConstraint<String> unique = new ColumnPrefixUniquenessConstraint<String>(keyspace, UNIQUE_CF, row) .withConsistencyLevel(ConsistencyLevel.CL_ONE) .withUniqueId("def"); try { unique.acquireAndApplyMutation( new Function<MutationBatch, Boolean>() { @Override public Boolean apply(MutationBatch m) { m.withRow(UNIQUE_CF, row).putColumn(dataColumn, value, null); return true; } }); String column = unique.readUniqueColumn(); Assert.assertNotNull(column); } catch (Exception e) { e.printStackTrace(); LOG.error("", e); Assert.fail(); } finally { } ColumnList<String> columns = keyspace.prepareQuery(UNIQUE_CF).getKey(row).execute().getResult(); Assert.assertEquals(2, columns.size()); Assert.assertEquals(value, columns.getStringValue(dataColumn, null)); unique.release(); columns = keyspace.prepareQuery(UNIQUE_CF).getKey(row).execute().getResult(); Assert.assertEquals(1, columns.size()); Assert.assertEquals(value, columns.getStringValue(dataColumn, null)); }
@Test public void testPrefixUniquenessConstraintWithColumn() throws Exception { ColumnPrefixUniquenessConstraint<String> unique = new ColumnPrefixUniquenessConstraint<String>( keyspace, UNIQUE_CF, "testPrefixUniquenessConstraintWithColumn") .withConsistencyLevel(ConsistencyLevel.CL_ONE) .withUniqueId("abc"); ColumnPrefixUniquenessConstraint<String> unique2 = new ColumnPrefixUniquenessConstraint<String>( keyspace, UNIQUE_CF, "testPrefixUniquenessConstraintWithColumn") .withConsistencyLevel(ConsistencyLevel.CL_ONE) .withUniqueId("def"); try { unique.acquire(); String column = unique.readUniqueColumn(); LOG.info("Unique Column: " + column); Assert.assertEquals("abc", column); try { unique2.acquire(); Assert.fail(); } catch (Exception e) { } column = unique.readUniqueColumn(); LOG.info("Unique Column: " + column); Assert.assertEquals("abc", column); } catch (Exception e) { Assert.fail(e.getMessage()); LOG.error(e.getMessage()); } finally { unique.release(); } }