/*******************************************************************************
* Copyright (c) 2012, 2015 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation
*
******************************************************************************/
package org.eclipse.persistence.jpa.tests.jpql.tools;
import org.eclipse.persistence.jpa.jpql.parser.DefaultJPQLGrammar;
import org.eclipse.persistence.jpa.jpql.tools.ContentAssistExtension;
import org.eclipse.persistence.jpa.jpql.tools.DefaultContentAssistProposals;
import org.eclipse.persistence.jpa.jpql.tools.ResultQuery;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* The unit-tests for {@link DefaultContentAssistProposals}.
*
* @version 2.5
* @since 2.5
* @author Pascal Filion
*/
@SuppressWarnings("nls")
public final class DefaultContentAssistProposalsTest {
@Test
public void test_BuildXmlQuery_01() {
String jpqlQuery = "SELECT a FROM Employee e";
int position = "SELECT a".length();
String proposal = "ABS";
String expectedJPQLQuery = "SELECT ABS FROM Employee e";
int expectedPosition = "SELECT ABS".length();
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_02() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e";
int position = "SELECT 2 ".length();
String proposal = "<>";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 <> e.id FROM Employee e";
int expectedPosition = "SELECT 2 <>".length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_03() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e";
int position = "SELECT 2 &".length();
String proposal = "<>";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 <> e.id FROM Employee e";
int expectedPosition = "SELECT 2 <>".length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_04() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e";
int position = "SELECT 2 &l".length();
String proposal = "<>";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 <> e.id FROM Employee e";
int expectedPosition = "SELECT 2 <>".length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_05() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e";
int position = "SELECT 2 <".length();
String proposal = "<>";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 <> e.id FROM Employee e";
int expectedPosition = "SELECT 2 <>".length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_06() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e";
int position = "SELECT 2 <".length();
String proposal = "<>";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 <> e.id FROM Employee e";
int expectedPosition = "SELECT 2 <>".length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_07() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e WHERE e.name = '&' ";
int position = jpqlQuery.length();
String proposal = "AND";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 < e.id FROM Employee e WHERE e.name = '&' AND";
int expectedPosition = expectedJPQLQuery.length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
@Test
public void test_BuildXmlQuery_08() {
String jpqlQuery = "SELECT 2 < e.id FROM Employee e WHERE e.name ";
int position = jpqlQuery.length();
String proposal = ">";
DefaultContentAssistProposals proposals = buildProposals();
ResultQuery result = proposals.buildXmlQuery(jpqlQuery, proposal, position, false);
String expectedJPQLQuery = "SELECT 2 < e.id FROM Employee e WHERE e.name >";
int expectedPosition = expectedJPQLQuery.length();
assertNotNull("ResultQuery cannot be null", result);
assertEquals (expectedJPQLQuery, result.getQuery());
assertEquals (expectedPosition, result.getPosition());
}
private DefaultContentAssistProposals buildProposals() {
return new DefaultContentAssistProposals(
DefaultJPQLGrammar.instance(),
ContentAssistExtension.NULL_HELPER
);
}
}