Package com.pardot.rhombus

Examples of com.pardot.rhombus.ConnectionManager


public class CassandraConnectionITCase extends RhombusFunctionalTest {

  @Test
  public void testKeyspaceCreate() throws IOException {
    ConnectionManager cm = TestHelpers.getTestConnectionManager();
    cm.buildCluster();
    Session session = cm.getEmptySession();
    assertNotNull(session);

    //Drop the functional keyspace if it exists
    try {
      session.execute("DROP KEYSPACE functional_create");
    } catch (InvalidQueryException e) {
      //Ignore
    }

    //Create the functional keyspace
    session.execute("CREATE KEYSPACE functional_create WITH replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }");

    //Change to our functional testing keyspace
    session.execute("USE functional_create");

    //Drop the functional keyspace
    try {
      session.execute("DROP KEYSPACE functional_create");
    } catch (InvalidQueryException e) {
      //Ignore
    }

    //Shutdown the session
    session.close();

    //Teardown the connection manager
    cm.teardown();
  }
View Full Code Here


  }

  @Test
  public void testObjectWithCustomKey() throws Exception {
    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper(definition.getName());

    //Get a test object to insert
    Map<String, Object> testObject = Maps.newHashMap();
    testObject.put("data1", "A-data1");
    String key1 = (String) om.insert("customkey", testObject, "A");

    Map<String, Object> testObject2 = Maps.newHashMap();
    testObject2.put("data1", "B-data1");
    String key2 = (String) om.insert("customkey", testObject2, "B");

    assertEquals("A", key1);
    assertEquals("B", key2);

    Map<String, Object> result = om.getByKey("customkey", "A");
    assertEquals("A-data1", result.get("data1"));

    result = om.getByKey("customkey", "B");
    assertEquals("B-data1", result.get("data1"));

    cm.teardown();
  }
View Full Code Here

  }

  @Test
  public void testDelete() throws Exception {
    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper(definition.getName());

    //Get a test object to insert
    Map<String, Object> testObject = JsonUtil.rhombusMapFromJsonMap(TestHelpers.getTestObject(0), definition.getDefinitions().get("testtype"));
    UUID key = (UUID) om.insert("testtype", testObject);

    //Query to get back the object from the database
    Map<String, Object> dbObject = om.getByKey("testtype", key);
    for (String dbKey : dbObject.keySet()) {
      //Verify that everything but the key is the same
      if (!dbKey.equals("id")) {
        assertEquals(testObject.get(dbKey), dbObject.get(dbKey));
      }
    }

    //Query by foreign key
    Criteria criteria = TestHelpers.getTestCriteria(0);
    long foreignKey = ((Long) criteria.getIndexKeys().get("foreignid")).longValue();
    criteria.getIndexKeys().put("foreignid", foreignKey);
    List<Map<String, Object>> dbObjects = om.list("testtype", criteria);
    assertEquals(1, dbObjects.size());
    for (Map<String, Object> result : dbObjects) {
      assertEquals(foreignKey, result.get("foreignid"));
    }

    //Remove the object we added
    om.delete("testtype", key);

    //Query to get back the object from the database
    assertEquals(null, om.getByKey("testtype", key));
    assertEquals(0, om.list("testtype", criteria).size());


    //now try inserting an object that has a null for one of the index values
    testObject.put("foreignid", null);
    UUID key3 = (UUID) om.insert("testtype", testObject);
    //Query to get back the object from the database
    dbObject = om.getByKey("testtype", key3);
    for (String dbKey : dbObject.keySet()) {
      //Verify that everything but the key is the same
      if (!dbKey.equals("id")) {
        assertEquals(testObject.get(dbKey), dbObject.get(dbKey));
      }
    }
    //Remove the object we added
    om.delete("testtype", key3);
    //Query to get back the object from the database
    assertEquals(null, om.getByKey("testtype", key3));

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testObjectTypes() throws Exception {
    logger.debug("Starting testObjectTypes");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "ObjectMapperTypeTestKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper();

    //Insert in some values of each type
    List<Map<String, Object>> values = JsonUtil.rhombusMapFromResource(this.getClass().getClassLoader(), "ObjectMapperTypeTestData.js");
    Map<String, Object> data = JsonUtil.rhombusMapFromJsonMap(values.get(0), definition.getDefinitions().get("testobjecttype"));
    UUID uuid = (UUID) om.insert("testobjecttype", data);
    assertNotNull(uuid);

    //Get back the values
    Map<String, Object> returnedValues = om.getByKey("testobjecttype", uuid);

    //Verify that id is returned
    assertNotNull(returnedValues.get("id"));

    logger.debug("Returned values: {}", returnedValues);
    for (String returnedKey : returnedValues.keySet()) {
      if (!returnedKey.equals("id")) {
        Object insertValue = data.get(returnedKey);
        Object returnValue = returnedValues.get(returnedKey);
        assertEquals(insertValue, returnValue);
      }
    }

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testDateRangeQueries() throws Exception {
    logger.debug("Starting testDateRangeQueries");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "AuditKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    logger.debug("Built keyspace: {}", definition.getName());
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper();

    //Insert our test data
    List<Map<String, Object>> values = JsonUtil.rhombusMapFromResource(this.getClass().getClassLoader(), "DateRangeQueryTestData.js");
    for (Map<String, Object> object : values) {
      Long createdAt = (Long) (object.get("created_at"));
      logger.debug("Inserting audit with created_at: {}", createdAt);
      om.insert("object_audit", JsonUtil.rhombusMapFromJsonMap(object, definition.getDefinitions().get("object_audit")), createdAt);
    }

    //Make sure that we have the proper number of results
    SortedMap<String, Object> indexValues = Maps.newTreeMap();
    indexValues.put("account_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    indexValues.put("object_type", "Account");
    indexValues.put("object_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    Criteria criteria = new Criteria();
    criteria.setIndexKeys(indexValues);
    criteria.setLimit(50L);
    List<Map<String, Object>> results = om.list("object_audit", criteria);
    assertEquals(8, results.size());

    //Now query for results since May 1 2013
    criteria.setStartTimestamp(1367366400000L);
    results = om.list("object_audit", criteria);
    assertEquals(7, results.size());

    //And for results since May 14, 2013
    criteria.setStartTimestamp(1368489600000L);
    results = om.list("object_audit", criteria);
    assertEquals(5, results.size());

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testNullIndexValues() throws Exception {
    logger.debug("Starting testNullIndexValues");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "AuditKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    logger.debug("Built keyspace: {}", definition.getName());
    ObjectMapper om = cm.getObjectMapper(definition);
    om.setLogCql(true);

    //Insert our test data
    List<Map<String, Object>> values = JsonUtil.rhombusMapFromResource(this.getClass().getClassLoader(), "NullIndexValuesTestData.js");
    Map<String, Object> object = values.get(0);
    Long createdAt = (Long) (object.get("created_at"));
    logger.debug("Inserting audit with created_at: {}", createdAt);
    UUID id = (UUID) om.insert("object_audit", JsonUtil.rhombusMapFromJsonMap(object, definition.getDefinitions().get("object_audit")), createdAt);

    //Get back the data and make sure things match
    Map<String, Object> result = om.getByKey("object_audit", id);
    assertEquals(object.get("user_id"), result.get("user_id"));
    assertEquals(object.get("changes"), result.get("changes"));
    for (String key : result.keySet()) {
      if (!key.equals("id")) {
        if (key.equals("account_id") || key.equals("object_id")) {
          assertEquals(object.get(key).toString(), result.get(key).toString());
        } else if (key.equals("created_at")) {
          assertEquals(object.get(key), ((Date) result.get(key)).getTime());
        } else {
          assertEquals(object.get(key), result.get(key));
        }
      }
      logger.debug("{} Result: {}, Input: {}", key, result.get(key), object.get(key));
    }

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testLargeCount() throws Exception {
    logger.debug("Starting testLargeCount");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "MultiInsertKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    logger.debug("Built keyspace: {}", definition.getName());
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper();
    om.setLogCql(true);

    //Set up test data
    int nDataItems = 200;

    List<Map<String, Object>> values2 = Lists.newArrayList();

    // insert additional data, we are testing for counts > 50
    for (int i = 0; i < nDataItems; i++) {
      Map<String, Object> value = Maps.newHashMap();
      value.put("account_id", "00000003-0000-0030-0040-000000030000");
      value.put("user_id", "00000003-0000-0030-0040-000000030000");
      value.put("field2", "Value" + (i + 8));
      values2.add(value);
    }

    List<Map<String, Object>> updatedValues2 = Lists.newArrayList();
    for (Map<String, Object> baseValue : values2) {
      updatedValues2.add(JsonUtil.rhombusMapFromJsonMap(baseValue, definition.getDefinitions().get("object2")));
    }

    Map<String, List<Map<String, Object>>> multiInsertMap = Maps.newHashMap();
    multiInsertMap.put("object2", updatedValues2);

    //Insert data
    om.insertBatchMixed(multiInsertMap);

    //Count the number of inserts we made
    SortedMap<String, Object> indexValues = Maps.newTreeMap();
    indexValues.put("account_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    indexValues.put("user_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    Criteria criteria = new Criteria();
    criteria.setIndexKeys(indexValues);

    //now test the count function
    long count = om.count("object2", criteria);
    assertEquals(nDataItems, count);

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testLargeCountAllowFilteringWithNoFilters() throws Exception {
    logger.debug("Starting testLargeCountAllowFilteringWithNoFilters");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "MultiInsertKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    logger.debug("Built keyspace: {}", definition.getName());
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper();
    om.setLogCql(true);

    //Set up test data
    int nDataItems = 200;

    List<Map<String, Object>> values2 = Lists.newArrayList();

    // insert additional data, we are testing for counts > 50
    for (int i = 0; i < nDataItems; i++) {
      Map<String, Object> value = Maps.newHashMap();
      value.put("account_id", "00000003-0000-0030-0040-000000030000");
      value.put("user_id", "00000003-0000-0030-0040-000000030000");
      value.put("field2", "Value" + (i + 8));
      values2.add(value);
    }

    List<Map<String, Object>> updatedValues2 = Lists.newArrayList();
    for (Map<String, Object> baseValue : values2) {
      updatedValues2.add(JsonUtil.rhombusMapFromJsonMap(baseValue, definition.getDefinitions().get("object2")));
    }

    Map<String, List<Map<String, Object>>> multiInsertMap = Maps.newHashMap();
    multiInsertMap.put("object2", updatedValues2);

    //Insert data
    om.insertBatchMixed(multiInsertMap);

    //Count the number of inserts we made
    SortedMap<String, Object> indexValues = Maps.newTreeMap();
    indexValues.put("account_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    indexValues.put("user_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    Criteria criteria = new Criteria();
    criteria.setIndexKeys(indexValues);
    criteria.setAllowFiltering(true);

    //now test the count function
    long count = om.count("object2", criteria);
    assertEquals(nDataItems, count);

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testLargeCountWithLimit() throws Exception {
    logger.debug("Starting testLargeCountWithLimit");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "MultiInsertKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    logger.debug("Built keyspace: {}", definition.getName());
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper();
    om.setLogCql(true);

    //Set up test data
    int nDataItems = 200;

    List<Map<String, Object>> values2 = Lists.newArrayList();

    // insert additional data, we are testing for counts > 50
    for (int i = 0; i < nDataItems; i++) {
      Map<String, Object> value = Maps.newHashMap();
      value.put("account_id", "00000003-0000-0030-0040-000000030000");
      value.put("user_id", "00000003-0000-0030-0040-000000030000");
      value.put("field2", "Value" + (i + 8));
      values2.add(value);
    }

    List<Map<String, Object>> updatedValues2 = Lists.newArrayList();
    for (Map<String, Object> baseValue : values2) {
      updatedValues2.add(JsonUtil.rhombusMapFromJsonMap(baseValue, definition.getDefinitions().get("object2")));
    }

    Map<String, List<Map<String, Object>>> multiInsertMap = Maps.newHashMap();
    multiInsertMap.put("object2", updatedValues2);

    //Insert data
    om.insertBatchMixed(multiInsertMap);

    //Count the number of inserts we made
    SortedMap<String, Object> indexValues = Maps.newTreeMap();
    indexValues.put("account_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    indexValues.put("user_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    Criteria criteria = new Criteria();
    criteria.setIndexKeys(indexValues);
    criteria.setAllowFiltering(true);
    criteria.setLimit(20L);

    //now test the count function
    long count = om.count("object2", criteria);
    assertEquals(20, count);

    cm.teardown();
  }
View Full Code Here

  @Test
  public void testLargeCountWithFiltering() throws Exception {
    logger.debug("Starting testLargeCountWithFilteringt");

    //Build the connection manager
    ConnectionManager cm = getConnectionManager();

    //Build our keyspace definition object
    CKeyspaceDefinition definition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "MultiInsertKeyspace.js");
    assertNotNull(definition);

    //Rebuild the keyspace and get the object mapper
    cm.buildKeyspace(definition, true);
    logger.debug("Built keyspace: {}", definition.getName());
    cm.setDefaultKeyspace(definition);
    ObjectMapper om = cm.getObjectMapper();
    om.setLogCql(true);

    //Set up test data
    int nDataItems = 200;

    List<Map<String, Object>> values2 = Lists.newArrayList();

    // insert additional data, we are testing for counts > 50
    for (int i = 0; i < nDataItems; i++) {
      Map<String, Object> value = Maps.newHashMap();
      value.put("account_id", "00000003-0000-0030-0040-000000030000");
      value.put("user_id", "00000003-0000-0030-0040-000000030000");
      // Set a specific value for data we want to filter
      if (i % 3 == 0) {
        value.put("field2", "taco");
      } else {
        value.put("field2", "Value" + (i + 8));
      }
      values2.add(value);
    }

    List<Map<String, Object>> updatedValues2 = Lists.newArrayList();
    for (Map<String, Object> baseValue : values2) {
      updatedValues2.add(JsonUtil.rhombusMapFromJsonMap(baseValue, definition.getDefinitions().get("object2")));
    }

    Map<String, List<Map<String, Object>>> multiInsertMap = Maps.newHashMap();
    multiInsertMap.put("object2", updatedValues2);

    //Insert data
    om.insertBatchMixed(multiInsertMap);

    //Count the number of inserts we made
    SortedMap<String, Object> indexValues = Maps.newTreeMap();
    indexValues.put("account_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    indexValues.put("user_id", UUID.fromString("00000003-0000-0030-0040-000000030000"));
    indexValues.put("field2", "taco");
    Criteria criteria = new Criteria();
    criteria.setIndexKeys(indexValues);
    criteria.setAllowFiltering(true);

    //now test the count function
    long count = om.count("object2", criteria);
    assertEquals((nDataItems / 3) + 1, count);

    cm.teardown();
  }
View Full Code Here

TOP

Related Classes of com.pardot.rhombus.ConnectionManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.