Package com.rapleaf.jack.test_project.database_1.iface

Examples of com.rapleaf.jack.test_project.database_1.iface.IUserPersistence


      // This exception is expected
    }
  }

  public void testQueryById(IDatabases dbs) throws IOException, SQLException {
    IUserPersistence users = dbs.getDatabase1().users();
    users.deleteAll();

    User[] sampleUsers = new User[5];
    for (int i = 0; i < sampleUsers.length; i++) {
      sampleUsers[i] = users.createDefaultInstance().setNumPosts(i % 2);
      sampleUsers[i].save();
    }

    Set<User> result;

    // Query by one id
    result = users.query().id(sampleUsers[0].getId()).find();
    assertEquals(1, result.size());
    assertTrue(result.contains(sampleUsers[0]));

    // Query by several ids
    Set<Long> sampleIds = new HashSet<Long>();
    sampleIds.add(sampleUsers[0].getId());
    sampleIds.add(sampleUsers[3].getId());
    sampleIds.add(sampleUsers[4].getId());
    result = users.query().idIn(sampleIds).find();
    assertEquals(3, result.size());
    assertTrue(result.contains(sampleUsers[0]));
    assertTrue(result.contains(sampleUsers[3]));
    assertTrue(result.contains(sampleUsers[4]));

    //Query by several ids and constraints
    Set<Long> sampleIds2 = new HashSet<Long>();
    sampleIds2.add(sampleUsers[2].getId());
    sampleIds2.add(sampleUsers[3].getId());

    result = users.query()
        .whereNumPosts(greaterThan(0))
        .idIn(sampleIds2)
        .find();
    assertEquals(1, result.size());
    assertTrue(result.contains(sampleUsers[3]));
View Full Code Here


  }

  public void testQueryWithOrder(IDatabases dbs) throws IOException, SQLException {

    IUserPersistence users = dbs.getDatabase1().users();
    users.deleteAll();

    User userA = users.createDefaultInstance().setHandle("A").setBio("CEO").setNumPosts(1).setSomeDecimal(0.9);
    User userB = users.createDefaultInstance().setHandle("B").setBio("Engineer").setNumPosts(2).setSomeDecimal(12.1);
    User userC = users.createDefaultInstance().setHandle("C").setBio("Analyst").setNumPosts(3).setSomeDecimal(-0.8);
    User userD = users.createDefaultInstance().setHandle("D").setBio("Dean").setNumPosts(3).setSomeDecimal(0.9);
    User userE = users.createDefaultInstance().setHandle("E").setBio("Associate").setNumPosts(3).setSomeDecimal(1.1);
    User userF = users.createDefaultInstance().setHandle("F").setBio("Associate").setNumPosts(6).setSomeDecimal(1.0);
    User userG = users.createDefaultInstance().setHandle("G").setBio("Associate").setNumPosts(5).setSomeDecimal(2.0);
    User userH = users.createDefaultInstance().setHandle("H").setBio("Associate").setNumPosts(7).setSomeDecimal(0.0);
    userA.save();
    userB.save();
    userC.save();
    userD.save();
    userE.save();
    userF.save();
    userG.save();
    userH.save();

    List<User> orderedResult1;
    List<User> orderedResult2;

    // An empty query should return an empty list.
    orderedResult1 = users.query().findWithOrder();
    assertTrue(orderedResult1.isEmpty());

    // A query with no results should return an empty list.
    orderedResult1 = users.query().numPosts(3).bio("CEO").order().findWithOrder();
    assertTrue(orderedResult1.isEmpty());

    // A simple query with single result should return a list with one element.
    orderedResult1 = users.query().bio("Analyst").order().findWithOrder();
    assertEquals(1, orderedResult1.size());
    assertTrue(orderedResult1.contains(userC));

    // A chained query with single result should return a list with one element.
    orderedResult1 = users.query().handle("A").bio("CEO").numPosts(1).order().findWithOrder();
    assertEquals(1, orderedResult1.size());
    assertTrue(orderedResult1.contains(userA));

    // A chained query ordered by default should be ordered by id in an ascending manner.
    // expected result: [userC, userD, userE]
    orderedResult1 = users.query().numPosts(3).order().findWithOrder();
    orderedResult2 = users.query().numPosts(3).orderById(ASC).findWithOrder();
    assertEquals(3, orderedResult1.size());
    assertEquals(0, orderedResult1.indexOf(userC));
    assertEquals(1, orderedResult1.indexOf(userD));
    assertEquals(2, orderedResult1.indexOf(userE));
    assertTrue(orderedResult1.equals(orderedResult2));

    // A chained query ordered by default in a descending manner should be ordered by id in an descending manner.
    // expected result: [userE, userD, userC]
    orderedResult1 = users.query().numPosts(3).order(DESC).findWithOrder();
    orderedResult2 = users.query().numPosts(3).orderById(DESC).findWithOrder();
    assertEquals(3, orderedResult1.size());
    assertEquals(2, orderedResult1.indexOf(userC));
    assertEquals(1, orderedResult1.indexOf(userD));
    assertEquals(0, orderedResult1.indexOf(userE));
    assertTrue(orderedResult1.equals(orderedResult2));

    // A chained query with multiple results ordered by a specific field by default should be ordered in an ascending manner.
    // expected result: [userC, userE, userD]
    orderedResult1 = users.query().numPosts(3).orderByBio().findWithOrder();
    orderedResult2 = users.query().numPosts(3).orderByBio(ASC).findWithOrder();
    assertEquals(3, orderedResult1.size());
    assertEquals(0, orderedResult1.indexOf(userC));
    assertEquals(1, orderedResult1.indexOf(userE));
    assertEquals(2, orderedResult1.indexOf(userD));
    assertTrue(orderedResult1.equals(orderedResult2));

    // A chained query ordered by a specified field in a descending manner should be ordered accordingly.
    // expected result: [userD, userE, userC]
    orderedResult1 = users.query().numPosts(3).orderByBio(DESC).findWithOrder();
    assertEquals(3, orderedResult1.size());
    assertEquals(2, orderedResult1.indexOf(userC));
    assertEquals(1, orderedResult1.indexOf(userE));
    assertEquals(0, orderedResult1.indexOf(userD));

    // a chained ordered query ordered by multiple fields should be ordered accordingly.
    // expected result: [userA, userB, userC, userE, userD, userG, userF, userH]
    orderedResult1 = users.query().whereNumPosts(greaterThan(0)).orderByNumPosts(ASC).orderByBio(ASC).findWithOrder();
    assertEquals(8, orderedResult1.size());
    assertEquals(0, orderedResult1.indexOf(userA));
    assertEquals(1, orderedResult1.indexOf(userB));
    assertEquals(2, orderedResult1.indexOf(userC));
    assertEquals(3, orderedResult1.indexOf(userE));
    assertEquals(4, orderedResult1.indexOf(userD));
    assertEquals(5, orderedResult1.indexOf(userG));
    assertEquals(6, orderedResult1.indexOf(userF));
    assertEquals(7, orderedResult1.indexOf(userH));

    // a chained ordered query ordered by multiple fields should be ordered accordingly.
    // expected result: [C, H, D, A, F, E, G, B]
    orderedResult1 = users.query().whereNumPosts(greaterThan(0)).orderBySomeDecimal().orderByBio(DESC).findWithOrder();
    assertEquals(8, orderedResult1.size());
    assertEquals(0, orderedResult1.indexOf(userC));
    assertEquals(1, orderedResult1.indexOf(userH));
    assertEquals(2, orderedResult1.indexOf(userD));
    assertEquals(3, orderedResult1.indexOf(userA));
View Full Code Here

    assertEquals(6, orderedResult1.indexOf(userG));
    assertEquals(7, orderedResult1.indexOf(userB));
  }

  public void testQueryByIdWithOrder(IDatabases dbs) throws IOException, SQLException {
    IUserPersistence users = dbs.getDatabase1().users();
    users.deleteAll();

    User[] sampleUsers = new User[5];
    for (int i = 0; i < sampleUsers.length; i++) {
      sampleUsers[i] = users.createDefaultInstance().setNumPosts(i % 2);
      sampleUsers[i].save();
    }

    List<User> orderedResult1;
    List<User> orderedResult2;

    // A query by one id should return a list with one element.
    orderedResult1 = users.query().id(sampleUsers[0].getId()).order().findWithOrder();
    assertEquals(1, orderedResult1.size());
    assertTrue(orderedResult1.contains(sampleUsers[0]));

    // A query by several ids ordered by default should return a list ordered by id in an ascending manner.
    Set<Long> sampleIds = new HashSet<Long>();
    sampleIds.add(sampleUsers[0].getId());
    sampleIds.add(sampleUsers[1].getId());
    sampleIds.add(sampleUsers[2].getId());
    orderedResult1 = users.query().idIn(sampleIds).order().findWithOrder();
    orderedResult2 = users.query().idIn(sampleIds).orderById(ASC).findWithOrder();
    assertEquals(3, orderedResult1.size());
    assertEquals(0, orderedResult1.indexOf(sampleUsers[0]));
    assertEquals(1, orderedResult1.indexOf(sampleUsers[1]));
    assertEquals(2, orderedResult1.indexOf(sampleUsers[2]));
    assertEquals(orderedResult1, orderedResult2);

    // A query by several ids ordered by a specific field should return a list ordered accordingly.
    sampleIds.add(sampleUsers[3].getId());
    sampleIds.add(sampleUsers[4].getId());
    orderedResult1 = users.query().idIn(sampleIds).orderByNumPosts(DESC).orderById(DESC).findWithOrder();
    assertEquals(5, orderedResult1.size());
    assertEquals(0, orderedResult1.indexOf(sampleUsers[3]));
    assertEquals(1, orderedResult1.indexOf(sampleUsers[1]));
    assertEquals(2, orderedResult1.indexOf(sampleUsers[4]));
    assertEquals(3, orderedResult1.indexOf(sampleUsers[2]));
View Full Code Here

    assertEquals(3, orderedResult1.indexOf(sampleUsers[2]));
    assertEquals(4, orderedResult1.indexOf(sampleUsers[0]));
  }

  public void testQueryWithLimit(IDatabases dbs) throws IOException, SQLException {
    IUserPersistence users = dbs.getDatabase1().users();
    users.deleteAll();

    int nbUsers = 10;
    User[] sampleUsers = new User[nbUsers];

    for (int i = 0; i < 10; i++) {
      sampleUsers[i] = users.createDefaultInstance().setNumPosts(i);
      sampleUsers[i].save();
    }

    List<User> resultList;

    resultList = users.query()
        .whereNumPosts(lessThan(5))
        .orderByNumPosts()
        .limit(3)
        .findWithOrder();

    assertEquals(3, resultList.size());
    for (int i = 0; i < resultList.size(); i++) {
      assertEquals(i, resultList.get(i).getNumPosts());
    }

    resultList = users.query()
        .whereNumPosts(greaterThan(3))
        .orderByNumPosts()
        .limit(2, 3)
        .findWithOrder();

    assertEquals(3, resultList.size());
    for (int i = 0; i < resultList.size(); i++) {
      assertEquals(i + 6, resultList.get(i).getNumPosts());
    }

    Set<User> resultSet;

    resultSet = users.query()
        .whereNumPosts(lessThan(5))
        .orderByNumPosts()
        .limit(3)
        .find();

    assertEquals(3, resultSet.size());

    resultSet = users.query()
        .whereNumPosts(greaterThan(3))
        .orderByNumPosts()
        .limit(2, 3)
        .find();
View Full Code Here

    assertEquals(3, resultSet.size());
  }

  public void testQueryWithSelect(IDatabases dbs) throws IOException, SQLException {

    IUserPersistence users = dbs.getDatabase1().users();
    users.deleteAll();

    User userA = users.createDefaultInstance().setHandle("AAAA").setBio("Batman").setCreatedAtMillis(1L).setNumPosts(1);
    User userB = users.createDefaultInstance().setHandle("BBBB").setBio("Superman").setCreatedAtMillis(1L);
    User userC = users.createDefaultInstance().setHandle("CCCC").setBio("Spiderman").setCreatedAtMillis(1L);
    userA.save();
    userB.save();
    userC.save();

    Collection<User> result;

    result = users.query().select(User._Fields.handle)
        .whereBio(endsWith("man"))
        .find();

    for (User user : result) {
      assertTrue(user.getHandle() != null);
      assertTrue(user.getBio() == null);
      assertTrue(user.getCreatedAtMillis() == null);
    }

    result = users.query().select(User._Fields.handle, User._Fields.created_at_millis)
        .whereBio(endsWith("man"))
        .findWithOrder();

    for (User user : result) {
      assertTrue(user.getHandle() != null);
      assertTrue(user.getCreatedAtMillis() != null);
      assertTrue(user.getBio() == null);
    }

    result = users.query().select(User._Fields.created_at_millis)
        .whereBio(endsWith("man"))
        .findWithOrder();

    for (User user : result) {
      assertTrue(user.getHandle().equals(""));
View Full Code Here

      assertTrue(user.getBio() == null);
    }
  }

  public void testGroupBy(IDatabases dbs) throws IOException, SQLException {
    IUserPersistence users = dbs.getDatabase1().users();
    users.deleteAll();

    for (int i = 0; i < 100; i++) {
      User user = users.createDefaultInstance().setHandle(String.valueOf(i % 2)).setNumPosts(i);
      user.save();
    }

    List<User> result;

    // Test Max
    result = users.query()
        .select(User._Fields.handle)
        .selectAgg(max(User._Fields.num_posts))
        .groupBy(User._Fields.handle)
        .orderByHandle()
        .findWithOrder();

    assertEquals(2, result.size());
    assertEquals("0", result.get(0).getHandle());
    assertEquals(98, result.get(0).getNumPosts());
    assertEquals("1", result.get(1).getHandle());
    assertEquals(99, result.get(1).getNumPosts());

    // Test Min
    result = users.query()
        .select(User._Fields.handle)
        .selectAgg(AggregatorFunctions.min(User._Fields.num_posts))
        .groupBy(User._Fields.handle)
        .orderByHandle()
        .findWithOrder();

    assertEquals(0, result.get(0).getNumPosts());
    assertEquals(1, result.get(1).getNumPosts());


    // Test Count
    result = users.query()
        .select(User._Fields.handle)
        .selectAgg(AggregatorFunctions.count(User._Fields.num_posts))
        .groupBy(User._Fields.handle)
        .orderByHandle()
        .findWithOrder();

    assertEquals(50, result.get(0).getNumPosts());
    assertEquals(50, result.get(1).getNumPosts());

    // Test Sum
    result = users.query()
        .select(User._Fields.handle)
        .selectAgg(AggregatorFunctions.sum(User._Fields.num_posts))
        .groupBy(User._Fields.handle)
        .orderByHandle()
        .findWithOrder();

    assertEquals(2, result.size());
    assertEquals(2450, result.get(0).getNumPosts());
    assertEquals(2500, result.get(1).getNumPosts());

    // Test Avg
    result = users.query()
        .select(User._Fields.handle)
        .selectAgg(AggregatorFunctions.avg(User._Fields.num_posts))
        .groupBy(User._Fields.handle)
        .orderByHandle()
        .findWithOrder();
View Full Code Here

public class DatabasesImpl implements IDatabases {
  private static final IDatabases mockDatabases = new MockDatabasesImpl();
  private final IDatabase1 database1;

  public DatabasesImpl(BaseDatabaseConnection database1_connection) {
    this.database1 = new Database1Impl(database1_connection, this);
  }
View Full Code Here

    }
    Boolean use_mock = (Boolean)env_info.get("use_mock_db");
    if (use_mock != null && use_mock) {
      this.database1 = mockDatabases.getDatabase1();
    } else {
      this.database1 = new Database1Impl(new DatabaseConnection("database1"), this);
    }
  }
View Full Code Here

public class MockDatabasesImpl implements IDatabases {
  private final IDatabase1 database1;

  public MockDatabasesImpl() {
    this.database1 = new MockDatabase1Impl(this);
  }
View Full Code Here

    assertNotNull("Post should be found from db by bigint id", foundPost);

    foundPost = posts.find(postId);
    assertNotNull("Post should be found in cache by bigint id", foundPost);

    Comment c = new Comment(1, "comment content", 1, postId, System.currentTimeMillis(), getDBS());
    assertNotNull("Post should be findable by foreign key", c.getPost());
  }
View Full Code Here

TOP

Related Classes of com.rapleaf.jack.test_project.database_1.iface.IUserPersistence

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.