package org.nextprot.api.solr; import org.junit.Assert; import org.junit.Test; import org.mockito.Mockito; import org.nextprot.api.solr.index.EntryIndex; import org.nextprot.api.solr.index.PublicationIndex; public class QueryTest { @Test public void testEscapingColon() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("GO:0031017"); Assert.assertEquals("GO\\:0031017", query.getQueryString(true)); } @Test public void testNotEscapingColonTwice() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("GO\\:0031017"); Assert.assertEquals("GO\\:0031017", query.getQueryString(true)); } @Test public void testEscapingMultipleColons() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("GO:0031017:kokoko"); Assert.assertEquals("GO\\:0031017\\:kokoko", query.getQueryString(true)); } @Test public void testNotEscapingMultipleColonsTwice() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("GO\\:0031017\\:kokoko"); Assert.assertEquals("GO\\:0031017\\:kokoko", query.getQueryString(true)); } @Test public void testNotEscapingAuthorAndReplacingWithItsPrivateName() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("author:bairoch"); Assert.assertEquals("authors:bairoch", query.getQueryString(true)); } @Test public void testNotEscapingMultipleFields() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("author:bairoch title:nextprot year:2004"); Assert.assertEquals("authors:bairoch title:nextprot year:2004", query.getQueryString(true)); } @Test public void testNotEscapingMultipleFieldsButEscapingGo() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("author:bairoch title:nextprot GO:218374 year:2004"); System.out.println(query.getQueryString()); Assert.assertEquals("authors:bairoch title:nextprot GO\\:218374 year:2004", query.getQueryString(true)); } @Test public void testEscapingIrrelevantFieldForIndex() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new EntryIndex()); query.addQuery("author:bairoch"); System.out.println(query.getQueryString()); Assert.assertEquals("author\\:bairoch", query.getQueryString(true)); } @Test public void testNotEscapingAnithingButReplacingFieldsWithPrivateName() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new PublicationIndex()); query.addQuery("author:bairoch title:nextprot GO:218374 year:2004"); Assert.assertEquals("authors:bairoch title:nextprot GO:218374 year:2004", query.getQueryString(false)); } @Test public void testNotEscapingEntryIdField() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new EntryIndex()); query.addQuery("id:NX_A0P322"); Assert.assertEquals("id:NX_A0P322", query.getQueryString(true)); } @Test public void test1() { Query query = new Query(Mockito.mock(SolrIndex.class)); query.setIndex(new EntryIndex()); query.addQuery("+insulin"); String result = query.getQueryString(true); System.out.println(result); Assert.assertEquals("+insulin", result); } }