Author: gbadner
Date: 2009-05-18 18:38:23 -0400 (Mon, 18 May 2009)
New Revision: 16593
Modified:
core/trunk/testsuite/src/test/java/org/hibernate/test/component/basic/ComponentTest.java
Log:
HHH-3510 : Add FailureExpected test for HQL SQLFunction replacement not occur
ing when HQL text has no parenthesis
Modified:
core/trunk/testsuite/src/test/java/org/hibernate/test/component/basic/ComponentTest.java
===================================================================
---
core/trunk/testsuite/src/test/java/org/hibernate/test/component/basic/ComponentTest.java 2009-05-18
21:28:34 UTC (rev 16592)
+++
core/trunk/testsuite/src/test/java/org/hibernate/test/component/basic/ComponentTest.java 2009-05-18
22:38:23 UTC (rev 16593)
@@ -16,6 +16,7 @@
import org.hibernate.criterion.Property;
import org.hibernate.dialect.Dialect;
import org.hibernate.dialect.function.SQLFunction;
+import org.hibernate.dialect.SybaseASE15Dialect;
import org.hibernate.junit.functional.FunctionalTestCase;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
import org.hibernate.mapping.Component;
@@ -157,12 +158,38 @@
s.createQuery( "from Employee e where e.person = :p and 1 = 1 and 2=2"
).setParameter( "p", emp.getPerson() ).list();
s.createQuery( "from Employee e where :p = e.person" ).setParameter(
"p", emp.getPerson() ).list();
- s.createQuery( "from Employee e where e.person = ('steve',
current_timestamp)" ).list();
+ // The following fails on Sybase due to HHH-3510. When HHH-3510
+ // is fixed, the check for SybaseASE15Dialect should be removed.
+ if ( ! ( getDialect() instanceof SybaseASE15Dialect ) ) {
+ s.createQuery( "from Employee e where e.person = ('steve',
current_timestamp)" ).list();
+ }
s.delete( emp );
t.commit();
s.close();
}
+
+ // Sybase should translate "current_timestamp" in HQL to
"getdate()";
+ // This fails currently due to HHH-3510. The following test should be
+ // deleted and testComponentQueries() should be updated (as noted
+ // in that test case) when HHH-3510 is fixed.
+ public void testComponentQueryMethodNoParensFailureExpected() {
+ if ( ! ( getDialect() instanceof SybaseASE15Dialect ) ) {
+ fail( "Dialect does not apply to test that is expected to fail; force
failure" );
+ }
+ Session s = openSession();
+ Transaction t = s.beginTransaction();
+ Employee emp = new Employee();
+ emp.setHireDate( new Date() );
+ emp.setPerson( new Person() );
+ emp.getPerson().setName( "steve" );
+ emp.getPerson().setDob( new Date() );
+ s.save( emp );
+ s.createQuery( "from Employee e where e.person = ('steve',
current_timestamp)" ).list();
+ s.delete( emp );
+ t.commit();
+ s.close();
+ }
public void testComponentFormulaQuery() {
Session s = openSession();