blob: 092ea3647581cbfbb4042f09b47907678bc9ce5a [file] [log] [blame]
/*
* Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation
//
package org.eclipse.persistence.jpa.tests.jpql.tools;
import org.eclipse.persistence.jpa.jpql.tools.DefaultRefactoringTool;
import org.eclipse.persistence.jpa.jpql.tools.RefactoringTool;
import org.eclipse.persistence.jpa.tests.jpql.UniqueSignature;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* The abstract definition of a unit-test that tests {@link RefactoringTool RefactoringTool} when the JPA version is 1.0.
*
* @version 2.5
* @since 2.4
* @author Pascal Filion
*/
@UniqueSignature
@SuppressWarnings("nls")
public final class RefactoringToolTest1_0 extends AbstractRefactoringToolTest {
private RefactoringTool buildRefactoringTool(String jpqlQuery) throws Exception {
return new DefaultRefactoringTool(getPersistenceUnit(), getJPQLQueryBuilder(), jpqlQuery);
}
@Test
public void test_RenameClassName_1() throws Exception {
String jpqlQuery = "SELECT NEW java.util.Vector(a.employees) FROM Address A";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("java.util.Vector", "java.util.ArrayList");
String expected = "SELECT NEW java.util.ArrayList(a.employees) FROM Address A";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameClassName_2() throws Exception {
String jpqlQuery = "SELECT NEW org.eclipse.persistence.Collection.Vector(a.employees) FROM Address A";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("org.eclipse.persistence.Collection", "org.eclipse.persistence.Type");
String expected = "SELECT NEW org.eclipse.persistence.Type.Vector(a.employees) FROM Address A";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameClassName_3() throws Exception {
String jpqlQuery = "SELECT NEW org.eclipse.persistence.Vector(a.employees) FROM Address A";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("org.eclipse.persistence.AbstractSession", "org.eclipse.persistence.session.Session");
assertEquals(jpqlQuery, refactoringTool.toActualText());
}
@Test
public void test_RenameClassName_4() throws Exception {
String jpqlQuery = "SELECT p FROM Product p WHERE p.enumType = jpql.query.EnumType.FIRST_NAME";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("jpql.query.EnumType", "org.eclipse.persistence.Type");
String expected = "SELECT p FROM Product p WHERE p.enumType = org.eclipse.persistence.Type.FIRST_NAME";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameClassName_5() throws Exception {
String jpqlQuery = "SELECT p FROM Product p WHERE p.enumType = jpql.query.EnumType.";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("jpql.query.EnumType", "org.eclipse.persistence.Type");
String expected = "SELECT p FROM Product p WHERE p.enumType = org.eclipse.persistence.Type.";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameClassName_6() throws Exception {
String jpqlQuery = "SELECT p FROM Product p WHERE p.enumType = jpql.query.Employee.EnumType.FIRST_NAME";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("jpql.query.Employee", "org.eclipse.persistence.Type");
String expected = "SELECT p FROM Product p WHERE p.enumType = org.eclipse.persistence.Type.EnumType.FIRST_NAME";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameClassName_7() throws Exception {
String jpqlQuery = "SELECT p FROM Product p WHERE p.enumType = jpql.query.EnumType.FIRST_NAME";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameClassName("jpql.query.Employee", "org.eclipse.persistence.Type");
assertEquals(jpqlQuery, refactoringTool.toActualText());
}
@Test
public void test_RenameEntityName_1() throws Exception {
String jpqlQuery = "SELECT a FROM Address A";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameEntityName("Address", "Employee");
String expected = "SELECT a FROM Employee A";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameEntityName_2() throws Exception {
String jpqlQuery = "SELECT a FROM Address A WHERE EXISTS(SELECT e FROM Employee e)";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameEntityName("Employee", "Manager");
String expected = "SELECT a FROM Address A WHERE EXISTS(SELECT e FROM Manager e)";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameEnumConstant_1() throws Exception {
String jpqlQuery = "UPDATE Employee SET name = jakarta.persistence.AccessType.FIELD";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameEnumConstant("jakarta.persistence.AccessType.FIELD", "jakarta.persistence.AccessType.PROPERTY");
String expected = "UPDATE Employee SET name = jakarta.persistence.AccessType.PROPERTY";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameEnumConstant_2() throws Exception {
String jpqlQuery = "UPDATE Employee e SET e.name = e.lName";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameEnumConstant("jakarta.persistence.AccessType.FIELD", "jakarta.persistence.AccessType.PROPERTY");
assertEquals(jpqlQuery, refactoringTool.toActualText());
}
@Test
public void test_RenameFieldName_1() throws Exception {
String jpqlQuery = "SELECT e.address.zip FROM Employee e";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameField("jpql.query.Employee", "address", "addr");
String expected = "SELECT e.addr.zip FROM Employee e";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameFieldName_2() throws Exception {
String jpqlQuery = "SELECT e.address.zipcode FROM Employee e";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameField("jpql.query.Address", "zip", "zipcode");
assertEquals(jpqlQuery, refactoringTool.toActualText());
}
@Test
public void test_RenameVariable_1() throws Exception {
String jpqlQuery = "SELECT a FROM Address A";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameVariable("a", "addr");
String expected = "SELECT addr FROM Address addr";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameVariable_2() throws Exception {
String jpqlQuery = "SELECT a FROM Address a JOIN a.employees ad";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameVariable("a", "addr");
String expected = "SELECT addr FROM Address addr JOIN addr.employees ad";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameVariable_3() throws Exception {
String jpqlQuery = "SELECT a FROM Address a WHERE EXISTS(SELECT e FROM a.employee)";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameVariable("a", "addr");
String expected = "SELECT addr FROM Address addr WHERE EXISTS(SELECT e FROM addr.employee)";
assertEquals(expected, refactoringTool.toActualText());
}
@Test
public void test_RenameVariable_4() throws Exception {
String jpqlQuery = "SELECT FROM Address";
RefactoringTool refactoringTool = buildRefactoringTool(jpqlQuery);
refactoringTool.renameVariable("a", "addr");
assertEquals(jpqlQuery, refactoringTool.toActualText());
}
}