Package com.browseengine.bobo.test

Source Code of com.browseengine.bobo.test.ProtoBufConvertTest

/**
*
*/
package com.browseengine.bobo.test;

import junit.framework.TestCase;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.FuzzyQuery;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.PrefixQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.search.WildcardQuery;
import org.apache.lucene.util.Version;

import com.browseengine.bobo.api.BrowseRequest;
import com.browseengine.bobo.protobuf.BrowseProtobufConverter;
import com.browseengine.bobo.protobuf.BrowseRequestBPO;
import com.google.protobuf.TextFormat;
import com.google.protobuf.TextFormat.ParseException;


/**
* @author java6
*
*/
public class ProtoBufConvertTest extends TestCase {
  public void testConvertMatchAllDocsQuery() throws ParseException {
    doConvert(new MatchAllDocsQuery());
  }

  public void testTermQuery() throws ParseException {
    doConvert(new TermQuery(new Term("tags", "hybrid")));
  }

  public void testFuzzyQuery() throws ParseException {
    doConvert(new FuzzyQuery(new Term("tags", "hybrid")));
  }
 
  public void testWildcardQuery() throws ParseException {
    doConvert(new WildcardQuery(new Term("*", "m**")));
  }

  public void testPrefixQuery() throws ParseException {
    doConvert(new PrefixQuery(new Term("tags", "h")));
  }

  public void testBooleanQuery() throws ParseException {
    BooleanQuery bq = new BooleanQuery();
    Query q1 = new TermQuery(new Term("tags", "h*"));
    BooleanClause bc = new BooleanClause(q1, BooleanClause.Occur.MUST);
    bq.add(bc);
    doConvert(bq);
  }

  public void testPhraseQuery() throws ParseException {
    PhraseQuery pq = new PhraseQuery();
    pq.add(new Term("tags", "h*"));
    pq.add(new Term("tags", "x*"));
    doConvert(pq);
  }

  public void testRangeQuery() throws ParseException {
    doConvert(new TermRangeQuery("tags", "a", "x", false, false));
    doConvert(new TermRangeQuery("tags", "a", "x", true, true));
  }

  public void doConvert(Query query) throws ParseException {
    BrowseRequest boboReqBefore = new BrowseRequest();
    boboReqBefore.setQuery(query);
    BrowseRequestBPO.Request req = (BrowseRequestBPO.Request) BrowseProtobufConverter.convert(boboReqBefore);
//    System.out.println("request after conversion to msg:\n" + req.toString());
    String reqString = TextFormat.printToString(req);
    reqString = reqString.replace('\r', ' ').replace('\n', ' ');
//    System.out.println(reqString);
    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
    QueryParser _qparser = new QueryParser(Version.LUCENE_CURRENT,"", analyzer);
//    System.out.println("msg to req");
    BrowseRequest boboReqAfter = BrowseProtobufConverter.convert(req, _qparser);
//    System.out.println("get query 2: "
//        + (boboReqAfter.getQuery() != null ? boboReqAfter.getQuery().getClass()
//            : "null query"));
//    System.out.println("----------");
    assertEquals(query.getClass(), boboReqAfter.getQuery().getClass());
  }
}
TOP

Related Classes of com.browseengine.bobo.test.ProtoBufConvertTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.