コード例 #1
0
  private void doTestUnaliasedProductQuery(final String query) {
    Collector hcc = new Collector();

    List visible = getVisibleEntityNames(query.toCharArray());
    cc.getMatchingProperties(cc.getCanonicalPath(visible, "owner"), "f", hcc);

    HQLCompletionProposal[] completionProposals = hcc.getCompletionProposals();
    //
    assertEquals(1, completionProposals.length);
    assertEquals("firstName", completionProposals[0].getSimpleName());
    //
    hcc.clear();
    cc.getMatchingProperties(cc.getCanonicalPath(visible, "owner"), "l", hcc);
    completionProposals = hcc.getCompletionProposals();
    assertEquals(1, completionProposals.length);
    assertEquals("lastName", completionProposals[0].getSimpleName());
    //
    hcc.clear();
    cc.getMatchingProperties(cc.getCanonicalPath(visible, "owner"), "", hcc);
    // firstname, lastname, owner
    assertEquals(3, hcc.getCompletionProposals().length);
    //
    hcc.clear();
    cc.getMatchingProperties(cc.getCanonicalPath(visible, "owner"), "g", hcc);
    assertEquals(0, hcc.getCompletionProposals().length);
  }
コード例 #2
0
  public void testComponentPropertyNames() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from Product as p where p.owner.|";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(3, completionProposals.length);
    assertNotNull(completionProposals[0]);

    c.clear();

    query = "from Product as p where p.owner.address.";
    caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    completionProposals = c.getCompletionProposals();

    assertEquals(3, completionProposals.length);

    c.clear();

    query = "from Product as p join p.otherOwners o where o.";
    caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    completionProposals = c.getCompletionProposals();

    assertEquals(3, completionProposals.length);
  }
コード例 #3
0
  public void testKeywordFunction() {
    Collector hcc = new Collector();
    cc.getMatchingKeywords("f", 2, hcc);

    HQLCompletionProposal[] completionProposals = hcc.getCompletionProposals();

    assertEquals(4, completionProposals.length);
    assertEquals("alse", completionProposals[0].getCompletion());

    hcc.clear();
    cc.getMatchingFunctions("ma", 2, hcc);

    completionProposals = hcc.getCompletionProposals();

    assertEquals(1, completionProposals.length);
    assertEquals("x", completionProposals[0].getCompletion());

    hcc.clear();
    cc.getMatchingKeywords("FR", 3, hcc);
    completionProposals = hcc.getCompletionProposals();
    assertEquals(1, completionProposals.length);

    hcc.clear();
    cc.getMatchingFunctions("MA", 2, hcc);
    completionProposals = hcc.getCompletionProposals();
    assertEquals(1, completionProposals.length);
  }
コード例 #4
0
  public void testGetStoreFields() {
    Collector hcc = new Collector();

    cc.getMatchingProperties("Store", "", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"city", "id", "name", "name2"});
    hcc.clear();
    cc.getMatchingProperties("Store", "name", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"name", "name2"});
    hcc.clear();
    cc.getMatchingProperties("Store", "name2", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"name2"});
    hcc.clear();
  }
コード例 #5
0
  public void testProductOwnerAddress() {
    String query = "select p from Product p where p.owner.";
    List visible = getVisibleEntityNames(query.toCharArray());

    Collector hcc = new Collector();

    cc.getMatchingProperties(cc.getCanonicalPath(visible, "p.owner"), "", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"address", "firstName", "lastName"});

    hcc.clear();
    query = "select p from Product p where p.owner.address.";
    visible = getVisibleEntityNames(query.toCharArray());
    cc.getMatchingProperties(cc.getCanonicalPath(visible, "p.owner.address"), "", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"id", "number", "street"});
  }
コード例 #6
0
  public void testGetMappedClasses() {
    Collector hcc = new Collector();
    cc.getMatchingImports("", hcc);
    assertEquals("Invalid entity names count", 9, hcc.getCompletionProposals().length);

    hcc.clear();
    cc.getMatchingImports(" ", hcc);
    assertTrue("Space prefix should have no classes", hcc.getCompletionProposals().length == 0);

    hcc.clear();
    cc.getMatchingImports("pro", hcc);
    assertTrue("Completion should not be case sensitive", hcc.getCompletionProposals().length == 2);

    hcc.clear();
    cc.getMatchingImports("StoreC", hcc);
    assertEquals("Invalid entity names count", 1, hcc.getCompletionProposals().length);
    assertEquals(
        "StoreCity should have been found",
        "StoreCity",
        hcc.getCompletionProposals()[0].getSimpleName());

    hcc.clear();
    cc.getMatchingImports("NotThere", hcc);
    assertTrue(hcc.getCompletionProposals().length == 0);

    hcc.clear();
    cc.getMatchingImports("Uni", hcc);
    assertEquals("Universe", hcc.getCompletionProposals()[0].getSimpleName());
  }
コード例 #7
0
  public void testStoreCity() {
    String query = "select p from Product p join p.stores store where store";
    List visible = getVisibleEntityNames(query.toCharArray());
    Collector hcc = new Collector();

    String canonicalPath = cc.getCanonicalPath(visible, "store.city");
    cc.getMatchingProperties(canonicalPath, "", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"id", "name"});
  }
コード例 #8
0
  public void testBadInputAfterCursor() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from org.hibernate.t| ;";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(query, caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(4, completionProposals.length);
  }
コード例 #9
0
  public void testGetProductFields() {
    Collector hcc = new Collector();

    cc.getMatchingProperties("Product", "", hcc);
    doTestFields(
        hcc.getCompletionProposals(),
        new String[] {"id", "otherOwners", "owner", "price", "stores", "version", "weight"});
    hcc.clear();

    cc.getMatchingProperties("Product", " ", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {});
    hcc.clear();

    cc.getMatchingProperties("Product", "v", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"version"});
    hcc.clear();

    cc.getMatchingProperties("Product", "V", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[] {"version"});
    hcc.clear();

    cc.getMatchingProperties("Product", "X", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[0]);
  }
コード例 #10
0
  public void testInFromAfterEntityAlias() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from Product as p, | where p.v";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(9, completionProposals.length);
    HQLCompletionProposal proposal = completionProposals[0];
    assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());

    assertEquals(caretPosition, proposal.getCompletionLocation());
    assertEquals(caretPosition, proposal.getReplaceStart());
    assertEquals(caretPosition, proposal.getReplaceEnd());
  }
コード例 #11
0
  public void testAliasRef() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from Product as pr_od where pr_|";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(1, completionProposals.length);
    HQLCompletionProposal proposal = completionProposals[0];
    assertEquals("od", proposal.getCompletion());
    assertEquals(HQLCompletionProposal.ALIAS_REF, proposal.getCompletionKind());
    assertEquals(caretPosition, proposal.getCompletionLocation());
    assertEquals(caretPosition, proposal.getReplaceStart());
    assertEquals(caretPosition, proposal.getReplaceEnd());
    assertEquals("org.hibernate.tool.ide.completion.Product", proposal.getEntityName());
  }
コード例 #12
0
  public void testDottedFromPartialEntityName() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from org.hibernate.t| ";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(query, caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(4, completionProposals.length);
    for (int i = 0; i < completionProposals.length; i++) {
      HQLCompletionProposal proposal = completionProposals[i];
      assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());
      assertEquals(caretPosition, proposal.getCompletionLocation());
      assertEquals(caretPosition, proposal.getReplaceStart());
      assertEquals(caretPosition, proposal.getReplaceEnd());
      assertTrue(proposal.getCompletion().startsWith("ool.ide.completion"));
    }
  }
コード例 #13
0
  public void testKeywordsFunctions() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertTrue(completionProposals.length > 0);
    for (int i = 0; i < completionProposals.length; i++) {
      HQLCompletionProposal proposal = completionProposals[i];
      assertTrue(
          HQLCompletionProposal.KEYWORD == proposal.getCompletionKind()
              || HQLCompletionProposal.FUNCTION == proposal.getCompletionKind());
      assertEquals(caretPosition, proposal.getCompletionLocation());
      assertEquals(caretPosition, proposal.getReplaceStart());
      assertEquals(caretPosition, proposal.getReplaceEnd());
    }
  }
コード例 #14
0
  public void testBasicFrom() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from | ";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(query, caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(9, completionProposals.length);
    for (int i = 0; i < completionProposals.length; i++) {
      HQLCompletionProposal proposal = completionProposals[i];
      assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());
      assertEquals(caretPosition, proposal.getCompletionLocation());
      assertEquals(caretPosition, proposal.getReplaceStart());
      assertEquals(proposal.getReplaceStart(), proposal.getReplaceEnd()); // nothing to replace
      assertNotNull(proposal.getShortEntityName());
      assertNotNull(proposal.getEntityName());
      // assertNotNull(proposal.getShortEntityName());
    }
  }
コード例 #15
0
  public void testBasicPropertyNames() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from Product as p where p.v|"; // TODO: is non-aliased references allowed ?
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(1, completionProposals.length);
    HQLCompletionProposal proposal = completionProposals[0];
    assertEquals("ersion", proposal.getCompletion());
    assertEquals(HQLCompletionProposal.PROPERTY, proposal.getCompletionKind());
    assertEquals(caretPosition, proposal.getCompletionLocation());
    assertEquals(caretPosition, proposal.getReplaceStart());
    assertEquals(caretPosition, proposal.getReplaceEnd());
    // TODO: keep a path/context assertEquals("Product", proposal.getShortEntityName());
    assertEquals("org.hibernate.tool.ide.completion.Product", proposal.getEntityName());
    assertEquals("version", proposal.getPropertyName());
    assertNotNull(proposal.getProperty());
    assertEquals(proposal.getPropertyName(), proposal.getProperty().getName());
  }
コード例 #16
0
  public void testBasicFromPartialDifferentCaseEntityName() {
    Collector c = new Collector();

    IHQLCodeAssist hqlEval = new HQLCodeAssist(sf);

    String query = "from pro| ";
    int caretPosition = getCaretPosition(query);
    hqlEval.codeComplete(query, caretPosition, c);

    HQLCompletionProposal[] completionProposals = c.getCompletionProposals();

    assertEquals(2, completionProposals.length);
    assertEquals("Product", completionProposals[0].getSimpleName());
    assertEquals("Product", completionProposals[0].getCompletion());
    assertEquals("ProductOwnerAddress", completionProposals[1].getSimpleName());
    assertEquals("ProductOwnerAddress", completionProposals[1].getCompletion());
    for (int i = 0; i < completionProposals.length; i++) {
      HQLCompletionProposal proposal = completionProposals[i];
      assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());
      assertEquals(caretPosition, proposal.getCompletionLocation());
      assertEquals(caretPosition - 3, proposal.getReplaceStart());
      assertEquals(caretPosition, proposal.getReplaceEnd());
    }
  }
コード例 #17
0
  public void testUnmappedClassFields() {
    Collector hcc = new Collector();

    cc.getMatchingProperties("UnmappedClass", "", hcc);
    doTestFields(hcc.getCompletionProposals(), new String[0]);
  }