A horrible, HORRIBLE, horrible test
I think, without question, that this is one of the most horrible nasty tests that I have seen. It has been ported as is from the java code, and you can literally feel the nastiness in reading it:
[Test] public void IndexedEmbeddedAndCollections() { Author a = new Author(); a.Name = "Voltaire"; Author a2 = new Author(); a2.Name = "Victor Hugo"; Author a3 = new Author(); a3.Name = "Moliere"; Author a4 = new Author(); a4.Name = "Proust"; Order o = new Order(); o.OrderNumber = "ACVBNM"; Order o2 = new Order(); o2.OrderNumber = "ZERTYD"; Product p1 = new Product(); p1.Name = "Candide"; p1.Authors.Add(a); p1.Authors.Add(a2); //be creative Product p2 = new Product(); p2.Name = "Le malade imaginaire"; p2.Authors.Add(a3); p2.Orders.Add("Emmanuel", o); p2.Orders.Add("Gavin", o2); ISession s = OpenSession(); ITransaction tx = s.BeginTransaction(); s.Persist(a); s.Persist(a2); s.Persist(a3); s.Persist(a4); s.Persist(o); s.Persist(o2); s.Persist(p1); s.Persist(p2); tx.Commit(); s.Clear(); IFullTextSession session = Search.CreateFullTextSession( s ); tx = session.BeginTransaction(); QueryParser parser = new MultiFieldQueryParser( new string[] { "name", "authors.name" }, new StandardAnalyzer() ); Lucene.Net.Search.Query query = parser.Parse( "Hugo" ); IList result = session.CreateFullTextQuery( query ).List(); Assert.AreEqual( 1, result.Count, "collection of embedded ignored" ); //update the collection Product p = (Product) result[0]; p.Authors.Add( a4 ); //PhraseQuery query = new TermQuery( new Term( "orders.orderNumber", "ZERTYD" ) ); result = session.CreateFullTextQuery( query).List(); Assert.AreEqual( 1, result.Count, "collection of untokenized ignored" ); query = new TermQuery( new Term( "orders.orderNumber", "ACVBNM" ) ); result = session.CreateFullTextQuery( query).List(); Assert.AreEqual( 1, result.Count, "collection of untokenized ignored" ); tx.Commit(); s.Clear(); tx = s.BeginTransaction(); session = Search.CreateFullTextSession( s ); query = parser.Parse( "Proust" ); result = session.CreateFullTextQuery( query ).List(); //HSEARCH-56 Assert.AreEqual( 1, result.Count, "update of collection of embedded ignored" ); // Tidy up s.Delete(a); s.Delete(a2); s.Delete(a3); s.Delete(a4); s.Delete(o); s.Delete(o2); s.Delete(p1); s.Delete(p2); tx.Commit(); s.Close(); }
Point to anyone who want to start a list of how many good test metrics this test violates.
Oh, and right now, this test fails.

Comments
Comment preview