Skip to content

Commit ebfbf87

Browse files
committed
HHH-8511 add passing test
1 parent 7e30638 commit ebfbf87

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.lob;
6+
7+
import java.sql.Clob;
8+
import java.sql.SQLException;
9+
import java.util.List;
10+
import jakarta.persistence.Entity;
11+
import jakarta.persistence.GeneratedValue;
12+
import jakarta.persistence.Id;
13+
import jakarta.persistence.Lob;
14+
import jakarta.persistence.Table;
15+
16+
import org.hibernate.community.dialect.InformixDialect;
17+
import org.hibernate.query.Query;
18+
19+
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
20+
import org.hibernate.testing.orm.junit.JiraKey;
21+
import org.hibernate.testing.orm.junit.RequiresDialect;
22+
import org.junit.Test;
23+
24+
import static org.hamcrest.core.Is.is;
25+
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
26+
import static org.junit.Assert.assertThat;
27+
import static org.junit.Assert.fail;
28+
29+
/**
30+
* @author Andrea Boriero
31+
* @author VladoKuruc
32+
*/
33+
@JiraKey("HHH-8511")
34+
//@RequiresDialect(InformixDialect.class)
35+
public class InformixLobStringTest extends BaseCoreFunctionalTestCase {
36+
37+
private final String value1 = "xxxxxxxxxx".repeat( 20 );
38+
private final String value2 = "yyyyyyyyyy".repeat( 20 );
39+
40+
@Override
41+
protected Class<?>[] getAnnotatedClasses() {
42+
return new Class[] {TestEntity.class};
43+
}
44+
45+
@Override
46+
protected void prepareTest() throws Exception {
47+
TestEntity entity = new TestEntity();
48+
doInHibernate( this::sessionFactory, session -> {
49+
entity.setFirstLobField( value1 );
50+
entity.setSecondLobField( value2 );
51+
entity.setClobField( session.getLobHelper().createClob( value2 ) );
52+
session.persist( entity );
53+
} );
54+
55+
doInHibernate( this::sessionFactory, session -> {
56+
final TestEntity testEntity = session.find( TestEntity.class, entity.getId() );
57+
assertThat( testEntity.getFirstLobField(), is( value1 ) );
58+
} );
59+
}
60+
61+
@Test
62+
@JiraKey("HHH-8511")
63+
public void testHqlQuery() {
64+
doInHibernate( this::sessionFactory, session -> {
65+
final Query query = session.createQuery( "from TestEntity" );
66+
67+
final List<TestEntity> results = query.list();
68+
69+
assertThat( results.size(), is( 1 ) );
70+
71+
final TestEntity testEntity = results.get( 0 );
72+
assertThat( testEntity.getFirstLobField(), is( value1 ) );
73+
assertThat( testEntity.getSecondLobField(), is( value2 ) );
74+
final Clob clobField = testEntity.getClobField();
75+
try {
76+
77+
assertThat( clobField.getSubString( 1, (int) clobField.length() ), is( value2 ) );
78+
}
79+
catch (SQLException e) {
80+
fail( e.getMessage() );
81+
}
82+
} );
83+
}
84+
85+
@Entity(name = "TestEntity")
86+
@Table(name = "TEST_ENTITY")
87+
public static class TestEntity {
88+
@Id
89+
@GeneratedValue
90+
private long id;
91+
92+
@Lob
93+
String firstLobField;
94+
95+
@Lob
96+
String secondLobField;
97+
98+
@Lob
99+
Clob clobField;
100+
101+
public long getId() {
102+
return id;
103+
}
104+
105+
public String getFirstLobField() {
106+
return firstLobField;
107+
}
108+
109+
public void setFirstLobField(String firstLobField) {
110+
this.firstLobField = firstLobField;
111+
}
112+
113+
public String getSecondLobField() {
114+
return secondLobField;
115+
}
116+
117+
public void setSecondLobField(String secondLobField) {
118+
this.secondLobField = secondLobField;
119+
}
120+
121+
public Clob getClobField() {
122+
return clobField;
123+
}
124+
125+
public void setClobField(Clob clobField) {
126+
this.clobField = clobField;
127+
}
128+
}
129+
130+
@Override
131+
protected boolean isCleanupTestDataRequired() {
132+
return true;
133+
}
134+
}

0 commit comments

Comments
 (0)