[hibernate-commits] Hibernate SVN: r19181 - in search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested: containedIn and 1 other directory.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Apr 7 09:48:44 EDT 2010
Author: epbernard
Date: 2010-04-07 09:48:43 -0400 (Wed, 07 Apr 2010)
New Revision: 19181
Added:
search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/
search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItem.java
search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItemTag.java
search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java
search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/Tag.java
Log:
HSEARCH-488 add tests on nested @ContainedIn
Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItem.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItem.java (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItem.java 2010-04-07 13:48:43 UTC (rev 19181)
@@ -0,0 +1,74 @@
+package org.hibernate.search.test.embedded.nested.containedIn;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Version;
+
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.annotations.IndexedEmbedded;
+import org.hibernate.search.annotations.Store;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Indexed
+ at Entity
+public class HelpItem {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ @Version()
+ private Long version;
+
+ @Field(index = org.hibernate.search.annotations.Index.TOKENIZED, store = Store.NO)
+ private String title;
+
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "helpItem")
+ @IndexedEmbedded
+ private List<HelpItemTag> tags;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getVersion() {
+ return version;
+ }
+
+ public void setVersion(Long version) {
+ this.version = version;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public List<HelpItemTag> getTags() {
+ if ( tags == null ) {
+ tags = new ArrayList<HelpItemTag>();
+ }
+ return tags;
+ }
+
+ public void setTags(List<HelpItemTag> tags) {
+ this.tags = tags;
+ }
+}
\ No newline at end of file
Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItemTag.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItemTag.java (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/HelpItemTag.java 2010-04-07 13:48:43 UTC (rev 19181)
@@ -0,0 +1,71 @@
+package org.hibernate.search.test.embedded.nested.containedIn;
+
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Version;
+
+import org.hibernate.search.annotations.ContainedIn;
+import org.hibernate.search.annotations.IndexedEmbedded;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class HelpItemTag {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ @Version
+ private Long version;
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "helpItem", nullable = false)
+ @ContainedIn
+ private HelpItem helpItem;
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "tag", nullable = false)
+ @IndexedEmbedded
+ private Tag tag;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getVersion() {
+ return version;
+ }
+
+ public void setVersion(Long version) {
+ this.version = version;
+ }
+
+ public HelpItem getHelpItem() {
+ return helpItem;
+ }
+
+ public void setHelpItem(HelpItem helpItem) {
+ this.helpItem = helpItem;
+ }
+
+ public Tag getTag() {
+ return tag;
+ }
+
+ public void setTag(Tag tag) {
+ this.tag = tag;
+ }
+}
Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/NestedContainedInTest.java 2010-04-07 13:48:43 UTC (rev 19181)
@@ -0,0 +1,89 @@
+package org.hibernate.search.test.embedded.nested.containedIn;
+
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.TermQuery;
+
+import org.hibernate.Transaction;
+import org.hibernate.search.FullTextQuery;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.Search;
+import org.hibernate.search.test.SearchTestCase;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class NestedContainedInTest extends SearchTestCase {
+
+ public void testAddHelpItem() {
+ String tagName = "animal";
+ createHelpItem( tagName );
+ openSession( );
+ doQuery( tagName );
+ session.close();
+ }
+
+ public void testChangeTagName() {
+
+ String tagName = "animal";
+ createHelpItem( tagName );
+
+ openSession( );
+ HelpItem check = doQuery( tagName );
+
+ Tag tag = check.getTags().get( 0 ).getTag();
+
+ Transaction tx = session.beginTransaction();
+ String newTagName = "automobile";
+ tag.setName( newTagName );
+ session.saveOrUpdate( tag );
+ tx.commit();
+
+ doQuery( newTagName );
+ session.close();
+ }
+
+ private void createHelpItem(String tagName) {
+ openSession( );
+ Transaction tx = session.beginTransaction();
+ HelpItem helpItem = new HelpItem();
+ helpItem.setTitle( "The quick brown fox jumps over the lazy dog." );
+
+ Tag tag = new Tag();
+ tag.setName( tagName );
+
+ HelpItemTag helpItemTag = new HelpItemTag();
+ helpItemTag.setHelpItem( helpItem );
+ helpItemTag.setTag( tag );
+
+ helpItem.getTags().add( helpItemTag );
+ tag.getHelpItems().add( helpItemTag );
+
+ session.save( helpItem );
+ session.save( tag );
+ session.save( helpItemTag );
+
+ tx.commit();
+ session.close();
+ }
+
+ private HelpItem doQuery(String tagName) {
+ FullTextSession fullTextSession = Search.getFullTextSession( session );
+ Query termQuery = new TermQuery( new Term( "tags.tag.name", tagName ) );
+ FullTextQuery fullTextQuery =
+ fullTextSession.createFullTextQuery( termQuery, HelpItem.class );
+ HelpItem check = ( HelpItem ) fullTextQuery.uniqueResult();
+ assertNotNull( "No HelpItem with Tag '" + tagName + "' found in Lucene index.", check );
+ assertTrue( check.getTags().get( 0 ).getTag().getName().equals( tagName ) );
+ return check;
+ }
+
+ @Override
+ protected Class<?>[] getMappings() {
+ return new Class<?>[] {
+ HelpItem.class,
+ HelpItemTag.class,
+ Tag.class
+ };
+ }
+}
Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/Tag.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/Tag.java (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/embedded/nested/containedIn/Tag.java 2010-04-07 13:48:43 UTC (rev 19181)
@@ -0,0 +1,76 @@
+package org.hibernate.search.test.embedded.nested.containedIn;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Version;
+
+import org.hibernate.search.annotations.Boost;
+import org.hibernate.search.annotations.ContainedIn;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Store;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class Tag {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ @Version
+ private Long version;
+
+ @Column(nullable = false, length = 50)
+ @Field(index = org.hibernate.search.annotations.Index.TOKENIZED, store = Store.NO)
+ @Boost(1.5f)
+ private String name;
+
+ @OneToMany(fetch = FetchType.LAZY, mappedBy = "tag")
+ @ContainedIn
+ private List<HelpItemTag> helpItems;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getVersion() {
+ return version;
+ }
+
+ public void setVersion(Long version) {
+ this.version = version;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public List<HelpItemTag> getHelpItems() {
+ if ( helpItems == null ) {
+ helpItems = new ArrayList<HelpItemTag>();
+ }
+ return helpItems;
+ }
+
+ public void setHelpItems(List<HelpItemTag> helpItems) {
+ this.helpItems = helpItems;
+ }
+
+}
More information about the hibernate-commits
mailing list