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