r2496 - in trunk: topia-persistence/src/main/java/org/nuiton/topia/framework topia-persistence-tck/src/main/java/org/nuiton/topia/tck topia-persistence-tck/src/main/java/org/nuiton/topia/tck/it/events topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991
Author: athimel Date: 2012-05-23 10:24:34 +0200 (Wed, 23 May 2012) New Revision: 2496 Url: http://nuiton.org/repositories/revision/topia/2496 Log: Fix TopiaQuery array's setParameter Added: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryAnno1991Test.java Removed: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryTest.java Modified: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckItTestSuite.java trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckLegacyTestSuite.java trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/it/events/VetoableEventTest.java trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2012-05-22 16:19:02 UTC (rev 2495) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java 2012-05-23 08:24:34 UTC (rev 2496) @@ -879,13 +879,15 @@ for (int j = 0; j < args.length; j += 2) { String name = (String) args[j]; Object value = args[j + 1]; -// if (value.getClass().isArray()) { -// query.setParameterList(name, (Object[]) value); + if (value.getClass().isArray()) { + List<Object> values = Arrays.asList((Object[]) value); + query.setParameter(name, values); +// query.setParameterList(name, value); // } else if (value instanceof Collection<?>) { // query.setParameterList(name, (Collection<?>) value); -// } else { + } else { query.setParameter(name, value); -// } + } } // tchemit 2010-11-30 reproduce the same behaviour than before with the dao legacy if (useFlushMode) { Modified: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckItTestSuite.java =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckItTestSuite.java 2012-05-22 16:19:02 UTC (rev 2495) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckItTestSuite.java 2012-05-23 08:24:34 UTC (rev 2496) @@ -3,17 +3,16 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.nuiton.topia.TopiaContextFactoryTest; +import org.nuiton.topia.tck.it.EnumTest; +import org.nuiton.topia.tck.it.deletetest.DeleteEntityTest; import org.nuiton.topia.tck.it.events.VetoableEventTest; +import org.nuiton.topia.tck.it.generator.CompositeAssociationTest; +import org.nuiton.topia.tck.it.persistence.EntityVisitorExportXmlTest; +import org.nuiton.topia.tck.it.persistence.NaturalIdTest; import org.nuiton.topia.tck.legacy.ano1882.DAOAbstractTransformerTest; -import org.nuiton.topia.tck.legacy.ano1991.TopiaQueryTest; import org.nuiton.topia.tck.legacy.evo1912.EntityDTOTransformerTest; import org.nuiton.topia.tck.legacy.framework.TopiaContextReplicateTest; import org.nuiton.topia.tck.legacy.framework.TopiaUtilTest; -import org.nuiton.topia.tck.it.generator.CompositeAssociationTest; -import org.nuiton.topia.tck.it.EnumTest; -import org.nuiton.topia.tck.it.deletetest.DeleteEntityTest; -import org.nuiton.topia.tck.it.persistence.EntityVisitorExportXmlTest; -import org.nuiton.topia.tck.it.persistence.NaturalIdTest; /** * @author Arnaud Thimel <thimel@codelutin.com> @@ -21,7 +20,6 @@ @RunWith(Suite.class) @Suite.SuiteClasses({ DAOAbstractTransformerTest.class, - TopiaQueryTest.class, EntityDTOTransformerTest.class, TopiaContextReplicateTest.class, TopiaUtilTest.class, Modified: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckLegacyTestSuite.java =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckLegacyTestSuite.java 2012-05-22 16:19:02 UTC (rev 2495) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/TopiaTckLegacyTestSuite.java 2012-05-23 08:24:34 UTC (rev 2496) @@ -2,14 +2,11 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; -import org.nuiton.topia.tck.it.generator.CompositeAssociationTest; import org.nuiton.topia.tck.legacy.ano1882.DAOAbstractTransformerTest; -import org.nuiton.topia.tck.legacy.ano1991.TopiaQueryTest; +import org.nuiton.topia.tck.legacy.ano1991.TopiaQueryAnno1991Test; import org.nuiton.topia.tck.legacy.evo1912.EntityDTOTransformerTest; import org.nuiton.topia.tck.legacy.framework.TopiaContextReplicateTest; import org.nuiton.topia.tck.legacy.framework.TopiaUtilTest; -import org.nuiton.topia.tck.it.persistence.EntityVisitorExportXmlTest; -import org.nuiton.topia.tck.it.persistence.NaturalIdTest; /** * Test suite for {@code mapping} model. @@ -22,7 +19,7 @@ @RunWith(Suite.class) @Suite.SuiteClasses( {DAOAbstractTransformerTest.class, - TopiaQueryTest.class, + TopiaQueryAnno1991Test.class, EntityDTOTransformerTest.class, TopiaContextReplicateTest.class, TopiaUtilTest.class Modified: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/it/events/VetoableEventTest.java =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/it/events/VetoableEventTest.java 2012-05-22 16:19:02 UTC (rev 2495) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/it/events/VetoableEventTest.java 2012-05-23 08:24:34 UTC (rev 2496) @@ -18,8 +18,6 @@ import org.nuiton.topia.tck.it.TopiaDatabaseIt; import org.nuiton.topia.tck.it.TopiaTckItDAOHelper; -import static org.junit.Assert.assertNotNull; - /** * @author Arnaud Thimel <thimel@codelutin.com> */ Copied: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryAnno1991Test.java (from rev 2492, trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryTest.java) =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryAnno1991Test.java (rev 0) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryAnno1991Test.java 2012-05-23 08:24:34 UTC (rev 2496) @@ -0,0 +1,131 @@ +/* + * #%L + * ToPIA :: Persistence + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2004 - 2012 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +package org.nuiton.topia.tck.legacy.ano1991; + +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.tck.TopiaDatabase; +import org.nuiton.topia.tck.legacy.TopiaDatabaseLegacy; +import org.nuiton.topia.tck.legacy.TopiaTckLegacyDAOHelper; +import org.nuiton.topia.tck.legacy.entities.Person; +import org.nuiton.topia.tck.legacy.entities.PersonDAO; +import org.nuiton.topia.tck.legacy.entities.Pet; +import org.nuiton.topia.tck.legacy.entities.PetDAO; + +import java.util.Arrays; +import java.util.List; + +/** + * Prevent regression of http://nuiton.org/issues/1991. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.6.8 + */ +public class TopiaQueryAnno1991Test { + + @Rule + public final TopiaDatabase db = new TopiaDatabaseLegacy(); + + @Test + public void testInOperatorForIds() throws TopiaException { + + TopiaContext context = db.beginTransaction(); + + PersonDAO personDAO = TopiaTckLegacyDAOHelper.getPersonDAO(context); + + // appel 1 find all + Person toto = personDAO.create(Person.PROPERTY_NAME, "toto"); + Person titi = personDAO.create(Person.PROPERTY_NAME, "titi"); + + TopiaQuery query; + + query = personDAO.createQuery().addWhere( + Person.PROPERTY_NAME, TopiaQuery.Op.IN, new String[]{"toto"} + ); + + List<Person> result; + result = personDAO.findAllByQuery(query); + Assert.assertNotNull(result); + Assert.assertEquals(1, result.size()); + Assert.assertEquals(toto, result.get(0)); + + query = personDAO.createQuery().addWhere( + Person.PROPERTY_NAME, TopiaQuery.Op.NOT_IN, new String[]{"toto"} + ); + + result = personDAO.findAllByQuery(query); + Assert.assertNotNull(result); + Assert.assertEquals(1, result.size()); + Assert.assertEquals(titi, result.get(0)); + } + + @Test + public void testInOperatorForEntities() throws TopiaException { + + TopiaContext context = db.beginTransaction(); + + PetDAO petDAO = TopiaTckLegacyDAOHelper.getPetDAO(context); + PersonDAO personDAO = TopiaTckLegacyDAOHelper.getPersonDAO(context); + + Pet bernard = petDAO.create(Pet.PROPERTY_NAME, "bernard"); + Pet bianca = petDAO.create(Pet.PROPERTY_NAME, "bianca"); + Pet minou = petDAO.create(Pet.PROPERTY_NAME, "minou"); + Person toto = personDAO.create(Person.PROPERTY_NAME, "toto"); + toto.addPet(bernard); + + Person titi = personDAO.create(Person.PROPERTY_NAME, "titi"); + titi.addPet(bianca); + + Person tutu = personDAO.create(Person.PROPERTY_NAME, "tutu"); + tutu.addPet(minou); + + TopiaQuery query; + + query = petDAO.createQuery("p").addWhere( + "p." + Pet.PROPERTY_PERSON, TopiaQuery.Op.IN, Arrays.asList(toto, titi) + ); + + List<Pet> result; + result = petDAO.findAllByQuery(query); + Assert.assertNotNull(result); + Assert.assertEquals(2, result.size()); + Assert.assertTrue(result.contains(bernard)); + Assert.assertTrue(result.contains(bianca)); + + query = petDAO.createQuery("p").addWhere( + "p." + Pet.PROPERTY_PERSON, TopiaQuery.Op.NOT_IN, Arrays.asList(toto, titi) + ); + + result = petDAO.findAllByQuery(query); + Assert.assertNotNull(result); + Assert.assertEquals(1, result.size()); + Assert.assertTrue(result.contains(minou)); + } + +} Property changes on: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryAnno1991Test.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Deleted: trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryTest.java =================================================================== --- trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryTest.java 2012-05-22 16:19:02 UTC (rev 2495) +++ trunk/topia-persistence-tck/src/main/java/org/nuiton/topia/tck/legacy/ano1991/TopiaQueryTest.java 2012-05-23 08:24:34 UTC (rev 2496) @@ -1,131 +0,0 @@ -/* - * #%L - * ToPIA :: Persistence - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2012 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ -package org.nuiton.topia.tck.legacy.ano1991; - -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.tck.TopiaDatabase; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.tck.legacy.TopiaDatabaseLegacy; -import org.nuiton.topia.tck.legacy.TopiaTckLegacyDAOHelper; -import org.nuiton.topia.tck.legacy.entities.Person; -import org.nuiton.topia.tck.legacy.entities.PersonDAO; -import org.nuiton.topia.tck.legacy.entities.Pet; -import org.nuiton.topia.tck.legacy.entities.PetDAO; - -import java.util.Arrays; -import java.util.List; - -/** - * Prevent regression of http://nuiton.org/issues/1991. - * - * @author tchemit <chemit@codelutin.com> - * @since 2.6.8 - */ -public class TopiaQueryTest { - - @Rule - public final TopiaDatabase db = new TopiaDatabaseLegacy(); - - @Test - public void testInOperatorForIds() throws TopiaException { - - TopiaContext context = db.beginTransaction(); - - PersonDAO personDAO = TopiaTckLegacyDAOHelper.getPersonDAO(context); - - // appel 1 find all - Person toto = personDAO.create(Person.PROPERTY_NAME, "toto"); - Person titi = personDAO.create(Person.PROPERTY_NAME, "titi"); - - TopiaQuery query; - - query = personDAO.createQuery().addWhere( - Person.PROPERTY_NAME, TopiaQuery.Op.IN, new String[]{"toto"} - ); - - List<Person> result; - result = personDAO.findAllByQuery(query); - Assert.assertNotNull(result); - Assert.assertEquals(1, result.size()); - Assert.assertEquals(toto, result.get(0)); - - query = personDAO.createQuery().addWhere( - Person.PROPERTY_NAME, TopiaQuery.Op.NOT_IN, new String[]{"toto"} - ); - - result = personDAO.findAllByQuery(query); - Assert.assertNotNull(result); - Assert.assertEquals(1, result.size()); - Assert.assertEquals(titi, result.get(0)); - } - - @Test - public void testInOperatorForEntities() throws TopiaException { - - TopiaContext context = db.beginTransaction(); - - PetDAO petDAO = TopiaTckLegacyDAOHelper.getPetDAO(context); - PersonDAO personDAO = TopiaTckLegacyDAOHelper.getPersonDAO(context); - - Pet bernard = petDAO.create(Pet.PROPERTY_NAME, "bernard"); - Pet bianca = petDAO.create(Pet.PROPERTY_NAME, "bianca"); - Pet minou = petDAO.create(Pet.PROPERTY_NAME, "minou"); - Person toto = personDAO.create(Person.PROPERTY_NAME, "toto"); - toto.addPet(bernard); - - Person titi = personDAO.create(Person.PROPERTY_NAME, "titi"); - titi.addPet(bianca); - - Person tutu = personDAO.create(Person.PROPERTY_NAME, "tutu"); - tutu.addPet(minou); - - TopiaQuery query; - - query = petDAO.createQuery("p").addWhere( - "p." + Pet.PROPERTY_PERSON, TopiaQuery.Op.IN, Arrays.asList(toto, titi) - ); - - List<Pet> result; - result = petDAO.findAllByQuery(query); - Assert.assertNotNull(result); - Assert.assertEquals(2, result.size()); - Assert.assertTrue(result.contains(bernard)); - Assert.assertTrue(result.contains(bianca)); - - query = petDAO.createQuery("p").addWhere( - "p." + Pet.PROPERTY_PERSON, TopiaQuery.Op.NOT_IN, Arrays.asList(toto, titi) - ); - - result = petDAO.findAllByQuery(query); - Assert.assertNotNull(result); - Assert.assertEquals(1, result.size()); - Assert.assertTrue(result.contains(minou)); - } - -}
participants (1)
-
athimelï¼ users.nuiton.org