FileDocCategorySizeDatePackage
TestContentStrategy.javaAPI DocApache Lucene 2.1.04683Wed Feb 14 10:46:02 GMT 2007org.apache.lucene.gdata.search.analysis

TestContentStrategy.java

/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.lucene.gdata.search.analysis;

import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.gdata.data.ServerBaseEntry;
import org.apache.lucene.gdata.search.config.IndexSchemaField;
import org.apache.lucene.gdata.search.index.GdataIndexerException;
import org.w3c.dom.Node;

import junit.framework.TestCase;

public class TestContentStrategy extends TestCase {
    private static final String FIELD = "foo";
    private static final float BOOST = 2.0f;
    ContentStrategy strategy;
    
    protected void setUp() throws Exception {
        IndexSchemaField field = new IndexSchemaField();
        field.setName(FIELD);
        field.setStore(Field.Store.YES);
        field.setIndex(Field.Index.UN_TOKENIZED);
        field.setBoost(BOOST);
        this.strategy = new TestStrategy(field);
    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }
    public void testContentStrategyIndexStoreField() throws NotIndexableException{
        IndexSchemaField field = new IndexSchemaField();
        field.setName(FIELD);
        
        
        this.strategy = new TestStrategy(Field.Index.UN_TOKENIZED,Field.Store.YES,field);
        this.strategy.processIndexable(null);
        Field f = this.strategy.createLuceneField()[0];
        assertEquals(FIELD,f.name());
        assertEquals(TestStrategy.CONTENT,f.stringValue());
        assertEquals(1.0f,f.getBoost());
        assertTrue(f.isIndexed());
        assertTrue(f.isStored());
        assertFalse(f.isTokenized());
        assertFalse(f.isCompressed());
    }

    /*
     * Test method for 'org.apache.lucene.gdata.search.analysis.ContentStrategy.ContentStrategy(Index, Store, IndexSchemaField)'
     */
    public void testContentStrategyIndexSchemaField() throws NotIndexableException {
        IndexSchemaField field = new IndexSchemaField();
        field.setName(FIELD);
        
        
        this.strategy = new TestStrategy(field);
        this.strategy.processIndexable(null);
        Field f = this.strategy.createLuceneField()[0];
        
        assertEquals(FIELD,f.name());
        assertEquals(TestStrategy.CONTENT,f.stringValue());
        assertEquals(1.0f,f.getBoost());
        assertTrue(f.isIndexed());
        assertFalse(f.isStored());
        assertTrue(f.isTokenized());
        assertFalse(f.isCompressed());
    }

    /*
     * Test method for 'org.apache.lucene.gdata.search.analysis.ContentStrategy.createLuceneField()'
     */
    public void testCreateLuceneField() throws NotIndexableException {
        try{
        this.strategy.createLuceneField();
        fail("processIndexable is not called");
        }catch (GdataIndexerException e) {
          //
        }
        this.strategy.processIndexable(null);
        Field f = this.strategy.createLuceneField()[0];
        
        assertEquals(FIELD,f.name());
        assertEquals(TestStrategy.CONTENT,f.stringValue());
        assertEquals(BOOST,f.getBoost());
        assertTrue(f.isIndexed());
        assertTrue(f.isStored());
        assertFalse(f.isTokenized());
        assertFalse(f.isCompressed());
       
        
        
    }
    
    private static class TestStrategy extends ContentStrategy{

        private static final String CONTENT = "someString";

      
        protected TestStrategy(Index index, Store store, IndexSchemaField fieldConfig) {
            super(index, store, fieldConfig);
      
        }

        protected TestStrategy(IndexSchemaField fieldConfiguration) {
            super(fieldConfiguration);
            
        }

        @Override
        public void processIndexable(Indexable<? extends Node, ? extends ServerBaseEntry> indexable) throws NotIndexableException {
            this.content = CONTENT;
        }
        
    }

}