Exemple #1
0
  @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));
  }