[hibernate-commits] Hibernate SVN: r19868 - in search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration: mutablefactory and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jun 30 09:42:43 EDT 2010


Author: epbernard
Date: 2010-06-30 09:42:43 -0400 (Wed, 30 Jun 2010)
New Revision: 19868

Added:
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/A.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/B.java
   search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/MutableFactoryTest.java
Log:
HSEARCH-397 Add tests on mutable factory

Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/A.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/A.java	                        (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/A.java	2010-06-30 13:42:43 UTC (rev 19868)
@@ -0,0 +1,36 @@
+package org.hibernate.search.test.configuration.mutablefactory;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.search.annotations.DocumentId;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Indexed;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Indexed
+public class A {
+	private Integer id;
+	private String name;
+
+	@DocumentId
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	@Field
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/B.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/B.java	                        (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/B.java	2010-06-30 13:42:43 UTC (rev 19868)
@@ -0,0 +1,37 @@
+package org.hibernate.search.test.configuration.mutablefactory;
+
+import org.hibernate.search.annotations.DocumentId;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Indexed;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Indexed
+public class B {
+	private Integer id;
+	private String name;
+
+	public B(Integer id, String name) {
+		this.id = id;
+		this.name = name;
+	}
+
+	@DocumentId
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	@Field
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
\ No newline at end of file

Added: search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/MutableFactoryTest.java
===================================================================
--- search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/MutableFactoryTest.java	                        (rev 0)
+++ search/trunk/hibernate-search/src/test/java/org/hibernate/search/test/configuration/mutablefactory/MutableFactoryTest.java	2010-06-30 13:42:43 UTC (rev 19868)
@@ -0,0 +1,87 @@
+package org.hibernate.search.test.configuration.mutablefactory;
+
+import junit.framework.TestCase;
+import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.TopDocs;
+
+import org.hibernate.search.backend.Work;
+import org.hibernate.search.backend.WorkType;
+import org.hibernate.search.engine.SearchFactoryImplementor;
+import org.hibernate.search.impl.MutableSearchFactory;
+import org.hibernate.search.impl.SearchFactoryBuilder;
+import org.hibernate.search.store.DirectoryProvider;
+import org.hibernate.search.store.RAMDirectoryProvider;
+import org.hibernate.search.test.SearchTestCase;
+import org.hibernate.search.test.util.ManualConfiguration;
+import org.hibernate.search.test.util.ManualTransactionContext;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class MutableFactoryTest extends TestCase {
+
+	public void createEmptyFactory() throws Exception {
+		final ManualConfiguration configuration = new ManualConfiguration();
+		SearchFactoryImplementor sf = new SearchFactoryBuilder().configuration( configuration ).buildSearchFactory();
+		sf.close();
+	}
+
+	public void testAddingClass() throws Exception {
+		ManualConfiguration configuration = new ManualConfiguration()
+				.addProperty( "hibernate.search.default.directory_provider", RAMDirectoryProvider.class.getName() );
+		//FIXME downcasting of MSF. create a getDelegate() ?
+		MutableSearchFactory sf = (MutableSearchFactory) new SearchFactoryBuilder().configuration( configuration ).buildSearchFactory();
+		final SearchFactoryBuilder builder = new SearchFactoryBuilder();
+		sf = (MutableSearchFactory) builder.rootFactory( sf )
+				.addClass( A.class )
+				.buildSearchFactory();
+
+		A a = new A();
+		a.setId( 1 );
+		a.setName( "Emmanuel" );
+
+		ManualTransactionContext tc = new ManualTransactionContext();
+
+		Work<A> work = new Work<A>( a, 1, WorkType.INDEX );
+		sf.getWorker().performWork( work, tc );
+
+		tc.end();
+
+		QueryParser parser = new QueryParser( SearchTestCase.getTargetLuceneVersion(), "name", SearchTestCase.standardAnalyzer );
+		Query luceneQuery = parser.parse( "Emmanuel" );
+
+		//we know there is only one DP
+		DirectoryProvider provider = sf
+				.getDirectoryProviders( A.class )[0];
+		IndexSearcher searcher = new IndexSearcher( provider.getDirectory(), true );
+		TopDocs hits = searcher.search( luceneQuery, 1000 );
+		assertEquals( 1, hits.totalHits );
+
+		searcher.close();
+
+		sf = (MutableSearchFactory) builder.rootFactory( sf )
+				.addClass( B.class )
+				.buildSearchFactory();
+
+		tc = new ManualTransactionContext();
+
+		Work<B> workB = new Work<B>( new B(1, "Noel"), 1, WorkType.INDEX );
+		sf.getWorker().performWork( workB, tc );
+
+		tc.end();
+
+		luceneQuery = parser.parse( "Noel" );
+
+		//we know there is only one DP
+		provider = sf.getDirectoryProviders( A.class )[0];
+		searcher = new IndexSearcher( provider.getDirectory(), true );
+		hits = searcher.search( luceneQuery, 1000 );
+		assertEquals( 1, hits.totalHits );
+
+		searcher.close();
+
+		sf.close();
+	}
+}



More information about the hibernate-commits mailing list