Package com.browseengine.bobo.test

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

package com.browseengine.bobo.test;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

import junit.framework.TestCase;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.store.RAMDirectory;

import com.browseengine.bobo.api.BoboBrowser;
import com.browseengine.bobo.api.BoboIndexReader;
import com.browseengine.bobo.api.BrowseFacet;
import com.browseengine.bobo.api.BrowseRequest;
import com.browseengine.bobo.api.BrowseResult;
import com.browseengine.bobo.api.BrowseSelection;
import com.browseengine.bobo.api.FacetAccessible;
import com.browseengine.bobo.api.FacetSpec;
import com.browseengine.bobo.facets.FacetHandler;
import com.browseengine.bobo.facets.impl.PathFacetHandler;

public class TestPathMultiVal extends TestCase {
 
  private RAMDirectory directory;
  private Analyzer analyzer;
  private List<FacetHandler<?>> facetHandlers;
 
  static final String PathHandlerName = "path";

  public TestPathMultiVal(String name) {
    super(name);
    facetHandlers = new LinkedList<FacetHandler<?>>();
  }

    private void addMetaDataField(Document doc, String name,String[] vals)
    {
      for (String val : vals){
        Field field = new Field(name, val,Store.NO,Index.NOT_ANALYZED_NO_NORMS);
        field.setOmitTermFreqAndPositions(true);
        doc.add(field);
      }
    }
   
  @Override
  protected void setUp() throws Exception {
      directory = new RAMDirectory();
      analyzer = new WhitespaceAnalyzer();
      IndexWriter writer = new IndexWriter(directory, analyzer, true, MaxFieldLength.UNLIMITED);
      Document doc = new Document();
      addMetaDataField(doc,PathHandlerName,new String[]{"/a/b/c","/a/b/d"});
      writer.addDocument(doc);
      writer.commit();
     
      PathFacetHandler pathHandler = new PathFacetHandler("path",true);
      facetHandlers.add(pathHandler);
  }
 
  public void testMultiValPath() throws Exception{
    IndexReader reader = IndexReader.open(directory,true);
    BoboIndexReader boboReader = BoboIndexReader.getInstance(reader, facetHandlers);
   
    BoboBrowser browser = new BoboBrowser(boboReader);
    BrowseRequest req = new BrowseRequest();
   
    BrowseSelection sel = new BrowseSelection(PathHandlerName);
    sel.addValue("/a");
    HashMap<String,String> propMap = new HashMap<String,String>();
    propMap.put(PathFacetHandler.SEL_PROP_NAME_DEPTH,"0");
    propMap.put(PathFacetHandler.SEL_PROP_NAME_STRICT,"false");
    sel.setSelectionProperties(propMap);
   
    req.addSelection(sel);
   
    FacetSpec fs = new FacetSpec();
    fs.setMinHitCount(1);
    req.setFacetSpec(PathHandlerName, fs);
   
    BrowseResult res = browser.browse(req);
    assertEquals(res.getNumHits(),1);
    FacetAccessible fa = res.getFacetAccessor(PathHandlerName);
    List<BrowseFacet> facets = fa.getFacets();
    System.out.println(facets);
    assertEquals(1,facets.size());
    BrowseFacet facet = facets.get(0);
    assertEquals(1,facet.getFacetValueHitCount());
  }
}
TOP

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

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.