| /* |
| * 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); |
| } |
| } |