blob: 8263541601538ba438d34358a22ecdd919165a47 [file] [log] [blame]
/*
* Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2015 SAP. 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:
// SAP - initial API and implementation
package org.eclipse.persistence.testing.tests.wdf.jpa1.query;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.persistence.testing.framework.wdf.ToBeInvestigated;
import org.junit.Test;
public class TestUpdateDeleteClause extends QueryTest {
@Test
public void testDelete() {
// TODO parser/mapper have to be fixed
/* 0 assertValidQuery("delete FROM Cop c where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)"); */
// TODO parser/mapper have to be fixed
/* 1 assertValidQuery("delete FROM Cop as c where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)"); */
/* 2 */assertValidQuery("delete FROM Cop c where exists(select avg(c1.id) from Cop c1)");
assertValidQuery("DELETE FROM Cop");
// TODO parser/mapper have to be fixed
/* 3 assertValidQuery("delete FROM Cop c where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)"); */
}
@Test
@ToBeInvestigated
// @TestProperties(unsupportedDatabaseVendors = { DatabaseVendor.OPEN_SQL })
public void testUpdate() {
/* 4 */assertInvalidUpdateExecution("update Cop c set p.ianko = 4 where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)");
/* 5 */assertInvalidUpdateExecution("update Cop c set C.p.ianko = 4 where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)");
assertValidUpdateExecution("UPDATE Cop SET id=1");
// TODO parser/mapper have to be fixed
/* 6 assertInvalidQuery("update Cop set C.p.ianko = 4 where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)"); */
/* 7 */assertInvalidUpdateExecution("update Cop set partner.id = 4 where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)");
// TODO parser/mapper have to be fixed
/* 8 assertValidQuery("update Cop set id = null where exists(select avg(c1.id) from Cop c1)"); */
assertValidUpdateExecution("update Cop set id = 1 where exists(select avg(c.id) from Cop c)");
/* 9 */assertInvalidUpdateExecution("update Cop set id = 'null' where exists(select avg(c1.id) from Cop c1)");
// TODO parser/mapper have to be fixed
/* 10 assertValidQuery("update Cop set partner = null"); */
/* 11 assertValidQuery("update Cop set tesla.integer = 5"); */
/* 12 assertInvalidQuery("update Cop set partner.partner = null"); */
/* 13 assertInvalidQuery("update Cop set attachedCriminals = null"); */
}
@Test
public void testUpdateWithArguments() {
Set<InputParameterHolder> par1 = new HashSet<InputParameterHolder>();
par1.add(new InputParameterHolder("var2", "string"));
par1.add(new InputParameterHolder("var1", 2));
assertValidQueryWithParameters("UPDATE Department d SET d.name=:var2 WHERE d.id=:var1 ", par1);
par1.clear();
par1.add(new InputParameterHolder("var1", 1));
par1.add(new InputParameterHolder("var2", 2));
assertValidQueryWithParameters("UPDATE Cop c SET c.id=:var1, c.tesla.integer=:var2", par1);
par1.clear();
par1.add(new InputParameterHolder("var1", 1));
par1.add(new InputParameterHolder("var2", 2));
assertValidQueryWithParameters("UPDATE Cop c SET c.id = :var2 WHERE c.id=:var1", par1);
}
}