HHH-6069 - Tests moved

This commit is contained in:
Lukasz Antoniak 2011-04-16 10:17:12 +02:00 committed by adamw
parent 5d541ae375
commit 0b11cb96a8
5 changed files with 188 additions and 38 deletions

View File

@ -84,10 +84,9 @@ public class Column implements Selectable, Serializable, Cloneable {
return name;
}
public void setName(String name) {
/* Envers passes 'name' parameter wrapped with '`' signs if quotation required. Set 'quoted' property accordingly. */
if (
name.charAt(0)=='`' ||
Dialect.QUOTE.indexOf( name.charAt(0) ) > -1
Dialect.QUOTE.indexOf( name.charAt(0) ) > -1 //TODO: deprecated, remove eventually
) {
quoted=true;
this.name=name.substring( 1, name.length()-1 );

View File

@ -40,7 +40,6 @@ import java.util.Iterator;
/**
* @author Adam Warski (adam at warski dot org)
* @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
*/
public class BasicNaming extends AbstractEntityTest {
private Integer id1;
@ -119,18 +118,4 @@ public class BasicNaming extends AbstractEntityTest {
getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.NamingTestEntity1_AUD")
.getTable().getName());
}
@Test
public void testEscapeEntityField() {
Table table = getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.NamingTestEntity1_AUD").getTable();
Iterator<Column> columnIterator = table.getColumnIterator();
while (columnIterator.hasNext()) {
Column column = columnIterator.next();
if ("nte_number#".equals(column.getName())) {
assert column.isQuoted();
return;
}
}
assert false;
}
}

View File

@ -34,7 +34,6 @@ import org.hibernate.envers.AuditTable;
/**
* @author Adam Warski (adam at warski dot org)
* @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
*/
@Entity
@Table(name="naming_test_entity_1")
@ -49,10 +48,6 @@ public class NamingTestEntity1 {
@Audited
private String data;
@Column(name = "`nte_number#`")
@Audited
private Integer number;
public NamingTestEntity1() {
}
@ -65,12 +60,6 @@ public class NamingTestEntity1 {
this.data = data;
}
public NamingTestEntity1(Integer id, String data, Integer number) {
this.id = id;
this.data = data;
this.number = number;
}
public Integer getId() {
return id;
}
@ -87,14 +76,6 @@ public class NamingTestEntity1 {
this.data = data;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof NamingTestEntity1)) return false;
@ -102,7 +83,6 @@ public class NamingTestEntity1 {
NamingTestEntity1 that = (NamingTestEntity1) o;
if (data != null ? !data.equals(that.data) : that.data != null) return false;
if (number != null ? !number.equals(that.number) : that.number != null) return false;
if (id != null ? !id.equals(that.id) : that.id != null) return false;
return true;
@ -112,7 +92,6 @@ public class NamingTestEntity1 {
int result;
result = (id != null ? id.hashCode() : 0);
result = 31 * result + (data != null ? data.hashCode() : 0);
result = 31 * result + (number != null ? number.hashCode() : 0);
return result;
}
}

View File

@ -0,0 +1,83 @@
package org.hibernate.envers.test.integration.naming.quotation;
import org.hibernate.envers.Audited;
import javax.persistence.*;
/**
* @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
*/
@Entity
public class QuotedFieldsEntity {
@Id
@GeneratedValue
@Column(name = "`id#`")
private Long id;
@Column(name = "`#data1`")
@Audited
private String data1;
@Column(name = "`#data2`")
@Audited
private Integer data2;
public QuotedFieldsEntity() {
}
public QuotedFieldsEntity(String data1, Integer data2) {
this.data1 = data1;
this.data2 = data2;
}
public QuotedFieldsEntity(Long id, String data1, Integer data2) {
this.id = id;
this.data1 = data1;
this.data2 = data2;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
public Integer getData2() {
return data2;
}
public void setData2(Integer data2) {
this.data2 = data2;
}
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof QuotedFieldsEntity)) return false;
QuotedFieldsEntity that = (QuotedFieldsEntity) o;
if (id != null ? !id.equals(that.id) : that.id != null) return false;
if (data1 != null ? !data1.equals(that.data1) : that.data1 != null) return false;
if (data2 != null ? !data2.equals(that.data2) : that.data2 != null) return false;
return true;
}
public int hashCode() {
int result;
result = (id != null ? id.hashCode() : 0);
result = 31 * result + (data1 != null ? data1.hashCode() : 0);
result = 31 * result + (data2 != null ? data2.hashCode() : 0);
return result;
}
}

View File

@ -0,0 +1,104 @@
package org.hibernate.envers.test.integration.naming.quotation;
import org.hibernate.ejb.Ejb3Configuration;
import org.hibernate.envers.test.AbstractEntityTest;
import org.hibernate.envers.test.Priority;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.Table;
import org.junit.Test;
import javax.persistence.EntityManager;
import java.util.Arrays;
import java.util.Iterator;
/**
* @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
*/
public class QuotedFieldsTest extends AbstractEntityTest {
private Long qfeId1 = null;
private Long qfeId2 = null;
public void configure(Ejb3Configuration cfg) {
cfg.addAnnotatedClass(QuotedFieldsEntity.class);
}
@Test
@Priority(10)
public void initData() {
QuotedFieldsEntity qfe1 = new QuotedFieldsEntity("data1", 1);
QuotedFieldsEntity qfe2 = new QuotedFieldsEntity("data2", 2);
// Revision 1
EntityManager em = getEntityManager();
em.getTransaction().begin();
em.persist(qfe1);
em.persist(qfe2);
em.getTransaction().commit();
// Revision 2
em.getTransaction().begin();
qfe1 = em.find(QuotedFieldsEntity.class, qfe1.getId());
qfe1.setData1("data1 changed");
em.getTransaction().commit();
// Revision 3
em.getTransaction().begin();
qfe2 = em.find(QuotedFieldsEntity.class, qfe2.getId());
qfe2.setData2(3);
em.getTransaction().commit();
qfeId1 = qfe1.getId();
qfeId2 = qfe2.getId();
}
@Test
public void testRevisionsCounts() {
assert Arrays.asList(1, 2).equals(getAuditReader().getRevisions(QuotedFieldsEntity.class, qfeId1));
assert Arrays.asList(1, 3).equals(getAuditReader().getRevisions(QuotedFieldsEntity.class, qfeId2));
}
@Test
public void testHistoryOfId1() {
QuotedFieldsEntity ver1 = new QuotedFieldsEntity(qfeId1, "data2", 1);
QuotedFieldsEntity ver2 = new QuotedFieldsEntity(qfeId1, "data1 changed", 1);
assert getAuditReader().find(QuotedFieldsEntity.class, qfeId1, 1).equals(ver1);
assert getAuditReader().find(QuotedFieldsEntity.class, qfeId1, 2).equals(ver2);
assert getAuditReader().find(QuotedFieldsEntity.class, qfeId1, 3).equals(ver2);
}
@Test
public void testHistoryOfId2() {
QuotedFieldsEntity ver1 = new QuotedFieldsEntity(qfeId2, "data2", 2);
QuotedFieldsEntity ver2 = new QuotedFieldsEntity(qfeId2, "data2", 3);
assert getAuditReader().find(QuotedFieldsEntity.class, qfeId2, 1).equals(ver1);
assert getAuditReader().find(QuotedFieldsEntity.class, qfeId2, 2).equals(ver1);
assert getAuditReader().find(QuotedFieldsEntity.class, qfeId2, 3).equals(ver2);
}
@Test
public void testEscapeEntityField() {
Table table = getCfg().getClassMapping("org.hibernate.envers.test.integration.naming.quotation.QuotedFieldsEntity_AUD").getTable();
Column column1 = getColumnByName(table, "id#");
Column column2 = getColumnByName(table, "#data1");
Column column3 = getColumnByName(table, "#data2");
assert column1 != null;
assert column2 != null;
assert column3 != null;
assert column1.isQuoted();
assert column2.isQuoted();
assert column3.isQuoted();
}
private Column getColumnByName(Table table, String columnName) {
Iterator<Column> columnIterator = table.getColumnIterator();
while (columnIterator.hasNext()) {
Column column = columnIterator.next();
if (columnName.equals(column.getName())) {
return column;
}
}
return null;
}
}