Skip to content

Commit

Permalink
HHH-6069 - Tests moved
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasz-antoniak authored and adamw committed Apr 19, 2011
1 parent 5d541ae commit 0b11cb9
Show file tree
Hide file tree
Showing 5 changed files with 188 additions and 38 deletions.
Expand Up @@ -84,10 +84,9 @@ public String getName() {
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 );
Expand Down
Expand Up @@ -40,7 +40,6 @@

/**
* @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;
Expand Down Expand Up @@ -119,18 +118,4 @@ public void testTableName() {
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;
}
}
Expand Up @@ -34,7 +34,6 @@

/**
* @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")
Expand All @@ -49,10 +48,6 @@ public class NamingTestEntity1 {
@Audited
private String data;

@Column(name = "`nte_number#`")
@Audited
private Integer number;

public NamingTestEntity1() {
}

Expand All @@ -65,12 +60,6 @@ public NamingTestEntity1(Integer id, String data) {
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;
}
Expand All @@ -87,22 +76,13 @@ public void setData(String data) {
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;

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;
Expand All @@ -112,7 +92,6 @@ public int hashCode() {
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;
}
}
@@ -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;
}
}
@@ -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;
}
}

0 comments on commit 0b11cb9

Please sign in to comment.