Esempio n. 1
0
  public void testCreateBagTable() throws Exception {
    Collection bag = new HashSet();

    bag.add(new Integer(-10000));
    bag.add(new Integer(0));
    bag.add(new Integer(10000));
    bag.add(new Long(-10000));
    bag.add(new Long(0));
    bag.add(new Long(10000));
    bag.add(new Short((short) -10000));
    bag.add(new Short((short) 0));
    bag.add(new Short((short) 10000));
    bag.add(new BigDecimal(-10000.0));
    bag.add(new BigDecimal(0.0));
    bag.add(new BigDecimal(10000.0));
    bag.add(new Float(-10000.0));
    bag.add(new Float(0.0));
    bag.add(new Float(10000.0));
    bag.add(new Double(-10000.0));
    bag.add(new Double(0.0));
    bag.add(new Double(10000.0));
    bag.add(new String());
    bag.add(new String("a String with spaces"));
    bag.add(new String("123456"));
    bag.add(new String("123456.7"));
    bag.add(new Boolean(true));
    bag.add(new Boolean(false));
    bag.add(new Date(999999));
    bag.add(new Date(100));
    Employee employee = (Employee) DynamicUtil.createObject(Collections.singleton(Employee.class));
    employee.setId(new Integer(5000));
    bag.add(employee);
    Manager manager = (Manager) DynamicUtil.createObject(Collections.singleton(Manager.class));
    manager.setId(new Integer(5001));
    bag.add(manager);
    Company company = (Company) DynamicUtil.createObject(Collections.singleton(Company.class));
    company.setId(new Integer(6000));
    bag.add(company);

    // this shouldn't appear in any table
    bag.add(BigInteger.ONE);

    DatabaseUtil.createBagTable(db, con, "integer_table", bag, Integer.class);
    DatabaseUtil.createBagTable(db, con, "long_table", bag, Long.class);
    DatabaseUtil.createBagTable(db, con, "short_table", bag, Short.class);
    DatabaseUtil.createBagTable(db, con, "bigdecimal_table", bag, BigDecimal.class);
    DatabaseUtil.createBagTable(db, con, "float_table", bag, Float.class);
    DatabaseUtil.createBagTable(db, con, "double_table", bag, Double.class);
    DatabaseUtil.createBagTable(db, con, "string_table", bag, String.class);
    DatabaseUtil.createBagTable(db, con, "boolean_table", bag, Boolean.class);
    DatabaseUtil.createBagTable(db, con, "date_table", bag, Date.class);
    DatabaseUtil.createBagTable(db, con, "intermineobject_table", bag, InterMineObject.class);
    DatabaseUtil.createBagTable(db, con, "employee_table", bag, Employee.class);

    Statement s = con.createStatement();
    ResultSet r = s.executeQuery("SELECT value FROM integer_table");
    Set result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    Set expected = new HashSet();
    expected.add(new Integer(-10000));
    expected.add(new Integer(0));
    expected.add(new Integer(10000));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM long_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new Long(-10000));
    expected.add(new Long(0));
    expected.add(new Long(10000));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM short_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new Integer((short) -10000));
    expected.add(new Integer((short) 0));
    expected.add(new Integer((short) 10000));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM double_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new Double(-10000.0));
    expected.add(new Double(0.));
    expected.add(new Double(10000.0));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM float_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new Float(-10000.0));
    expected.add(new Float(0.));
    expected.add(new Float(10000.0));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM string_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new String());
    expected.add(new String("a String with spaces"));
    expected.add(new String("123456"));
    expected.add(new String("123456.7"));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM boolean_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new Boolean(true));
    expected.add(new Boolean(false));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM date_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(new Long(999999));
    expected.add(new Long(100));

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM intermineobject_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(employee.getId());
    expected.add(manager.getId());
    expected.add(company.getId());

    assertEquals(expected, result);

    r = s.executeQuery("SELECT value FROM employee_table");
    result = new HashSet();
    while (r.next()) {
      result.add(r.getObject(1));
    }

    expected = new HashSet();
    expected.add(employee.getId());
    expected.add(manager.getId());

    assertEquals(expected, result);
  }