Improve SQLServer tests for JPA

This commit is contained in:
Timo Westkämper 2015-10-11 21:59:56 +03:00
parent 8d9aeacf38
commit 4a4ea7a46d
5 changed files with 40 additions and 18 deletions

View File

@ -444,6 +444,7 @@ public abstract class AbstractJPATest {
}
@Test
@ExcludeIn(SQLSERVER)
public void Cast_ToString() {
for (Tuple tuple : query().from(cat).select(cat.breed, cat.breed.stringValue()).fetch()) {
assertEquals(
@ -453,6 +454,7 @@ public abstract class AbstractJPATest {
}
@Test
@ExcludeIn(SQLSERVER)
public void Cast_ToString_Append() {
for (Tuple tuple : query().from(cat).select(cat.breed, cat.breed.stringValue().append("test")).fetch()) {
assertEquals(
@ -626,7 +628,7 @@ public abstract class AbstractJPATest {
@Test
@NoEclipseLink({DERBY, HSQLDB})
@NoHibernate({DERBY, POSTGRESQL})
@NoHibernate({DERBY, POSTGRESQL, SQLSERVER})
public void Date_YearWeek() {
int value = query().from(cat).select(cat.birthdate.yearWeek()).fetchFirst();
assertTrue(value == 200006 || value == 200005);
@ -634,7 +636,7 @@ public abstract class AbstractJPATest {
@Test
@NoEclipseLink({DERBY, HSQLDB})
@NoHibernate({DERBY, POSTGRESQL})
@NoHibernate({DERBY, POSTGRESQL, SQLSERVER})
public void Date_Week() {
int value = query().from(cat).select(cat.birthdate.week()).fetchFirst();
assertTrue(value == 6 || value == 5);
@ -737,6 +739,7 @@ public abstract class AbstractJPATest {
}
@Test
@ExcludeIn(SQLSERVER)
public void Enum_StartsWith() {
assertEquals(1, query().from(company).where(company.ratingString.stringValue().startsWith("A")).fetchCount());
}
@ -1264,6 +1267,7 @@ public abstract class AbstractJPATest {
@Test
@NoBatooJPA
@ExcludeIn(SQLSERVER)
public void Order_NullsFirst() {
assertNull(query().from(cat)
.orderBy(cat.dateField.asc().nullsFirst())
@ -1272,6 +1276,7 @@ public abstract class AbstractJPATest {
@Test
@NoBatooJPA
@ExcludeIn(SQLSERVER)
public void Order_NullsLast() {
assertNotNull(query().from(cat)
.orderBy(cat.dateField.asc().nullsLast())
@ -1355,7 +1360,7 @@ public abstract class AbstractJPATest {
}
@Test
@ExcludeIn({MYSQL, TERADATA})
@ExcludeIn({MYSQL, SQLSERVER, TERADATA})
@NoOpenJPA
public void StringOperations() {
// NOTE : locate in MYSQL is case-insensitive

View File

@ -168,7 +168,7 @@ public abstract class AbstractSQLTest {
@Test
public void Limit_Offset() {
assertEquals(2, query().from(cat).limit(2).offset(2).select(cat.id, cat.name).fetch().size());
assertEquals(2, query().from(cat).orderBy(cat.id.asc()).limit(2).offset(2).select(cat.id, cat.name).fetch().size());
}
@Test
@ -178,19 +178,19 @@ public abstract class AbstractSQLTest {
@Test
public void List_Limit_And_Offset() {
assertEquals(3, query().from(cat).offset(3).limit(3).select(cat.id).fetch().size());
assertEquals(3, query().from(cat).orderBy(cat.id.asc()).offset(3).limit(3).select(cat.id).fetch().size());
}
@Test
public void List_Limit_And_Offset2() {
List<Tuple> tuples = query().from(cat).offset(3).limit(3).select(cat.id, cat.name).fetch();
List<Tuple> tuples = query().from(cat).orderBy(cat.id.asc()).offset(3).limit(3).select(cat.id, cat.name).fetch();
assertEquals(3, tuples.size());
assertEquals(2, tuples.get(0).size());
}
@Test
public void List_Limit_And_Offset3() {
List<Tuple> tuples = query().from(cat).offset(3).limit(3).select(Projections.tuple(cat.id, cat.name)).fetch();
List<Tuple> tuples = query().from(cat).orderBy(cat.id.asc()).offset(3).limit(3).select(Projections.tuple(cat.id, cat.name)).fetch();
assertEquals(3, tuples.size());
assertEquals(2, tuples.get(0).size());
}
@ -236,7 +236,7 @@ public abstract class AbstractSQLTest {
@Test
@ExcludeIn({Target.H2, Target.MYSQL})
public void List_With_Offset() {
assertEquals(3, query().from(cat).offset(3).select(cat.id).fetch().size());
assertEquals(3, query().from(cat).orderBy(cat.id.asc()).offset(3).select(cat.id).fetch().size());
}
@Test

View File

@ -15,16 +15,16 @@ public final class Mode {
public static SQLTemplates getSQLTemplates() {
switch (target.get()) {
case CUBRID: return new CUBRIDTemplates();
case DERBY: return new DerbyTemplates();
case H2: return new H2Templates();
case HSQLDB: return new HSQLDBTemplates();
case SQLSERVER: return new SQLServerTemplates();
case MYSQL: return new MySQLTemplates();
case ORACLE: return new OracleTemplates();
case CUBRID: return new CUBRIDTemplates();
case DERBY: return new DerbyTemplates();
case H2: return new H2Templates();
case HSQLDB: return new HSQLDBTemplates();
case SQLSERVER: return new SQLServer2008Templates();
case MYSQL: return new MySQLTemplates();
case ORACLE: return new OracleTemplates();
case POSTGRESQL: return new PostgreSQLTemplates();
case SQLITE: return new SQLiteTemplates();
case TERADATA: return new TeradataTemplates();
case SQLITE: return new SQLiteTemplates();
case TERADATA: return new TeradataTemplates();
}
throw new IllegalStateException("Unknown mode " + mode);
}

View File

@ -228,6 +228,23 @@
</properties>
</persistence-unit>
<!--mssql -->
<persistence-unit name="mssql">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect" />
<property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://localhost:1433/querydsl" />
<property name="hibernate.connection.username" value="querydsl" />
<property name="hibernate.connection.password" value="querydsl" />
<!-- <property name="hibernate.show_sql" value="true"/> -->
<property name="hibernate.flushMode" value="FLUSH_AUTO" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
<!-- postgresql -->
<persistence-unit name="postgresql">

View File

@ -1,5 +1,5 @@
## MSSQL
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect
hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver
hibernate.connection.url=jdbc:jtds:sqlserver://localhost:1433/querydsl
hibernate.connection.username=querydsl