Package org.eurekastreams.commons.search

Source Code of org.eurekastreams.commons.search.ProjectionToModelViewTransformerTest

/*
* Copyright (c) 2009-2010 Lockheed Martin Corporation
*
* Licensed 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.eurekastreams.commons.search;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.lucene.search.ComplexExplanation;
import org.apache.lucene.search.Explanation;
import org.eurekastreams.commons.reflection.ReflectiveInstantiator;
import org.eurekastreams.commons.search.modelview.ModelView;
import org.eurekastreams.commons.search.modelview.MyModelView;
import org.junit.Before;
import org.junit.Test;

/**
* Test fixture for ProjectionToModelViewTransformer.
*/
public class ProjectionToModelViewTransformerTest
{
    /**
     * System under test.
     */
    private ProjectionToModelViewTransformer sut;

    /**
     * Search score.
     */
    private final float searchScore = 0.89F;

    /**
     * Search description.
     */
    private Explanation explanation = new ComplexExplanation(true, searchScore, "Some Description");

    /**
     * Setup the sut.
     */
    @Before
    public void setup()
    {
        Map<Class< ? >, Class< ? >> modelToViewMap = new HashMap<Class< ? >, Class< ? >>();
        modelToViewMap.put(String.class, MyModelView.class);

        sut = new ProjectionToModelViewTransformer(modelToViewMap, new ReflectiveInstantiator());
    }

    /**
     * Test transformList() method, which does nothing but return the input list.
     */
    @Test
    public void testTransformList()
    {
        List<ModelView> list = new ArrayList<ModelView>();
        assertSame(list, sut.transformList(list));
    }

    /**
     * Unit test the getMapFromTuplesAndAliases() method.
     */
    @Test
    public void testGetMapFromTuplesAndAliases()
    {
        String[] aliases = new String[] { "foo", "bar" };
        Object[] tuple = new Object[] { 3, 8 };

        Map<String, Object> map = sut.getMapFromTuplesAndAliases(tuple, aliases);

        assertEquals(3, map.get("foo"));
        assertEquals(8, map.get("bar"));
    }

    /**
     * Test the transformTuple() method with unhandled type.
     */
    @Test(expected = IllegalArgumentException.class)
    public void testTransformTupleWithUnhandledType()
    {
        String[] aliases = new String[] { "_hibernate_class", "foo", "bar" };
        Object[] tuple = new Object[] { Integer.class, "Hi there!", "Hello right back at ya, buddy!" };

        sut.transformTuple(tuple, aliases);
    }

    /**
     * Test the transformTuple() method.
     */
    @Test
    public void testTransformTuple()
    {
        String[] aliases = new String[] { "_hibernate_class", "foo", "bar" };
        Object[] tuple = new Object[] { String.class, "Hi there!", "Hello right back at ya, buddy!" };

        MyModelView myModelView = (MyModelView) sut.transformTuple(tuple, aliases);
        assertEquals("Hi there!", myModelView.getFoo());
        assertEquals("Hello right back at ya, buddy!", myModelView.getBar());
    }

    /**
     * Test the transformTuple() method with included search explanation.
     */
    @Test
    public void testTransformTupleWithSearchExplanation()
    {
        String[] aliases = new String[] { "__HSearch_Explanation", "_hibernate_class", "foo", "bar" };
        Object[] tuple = new Object[] { explanation, String.class, "Hi there!", "Hello right back at ya, buddy!" };

        MyModelView myModelView = (MyModelView) sut.transformTuple(tuple, aliases);
        assertEquals("Hi there!", myModelView.getFoo());
        assertEquals("Hello right back at ya, buddy!", myModelView.getBar());
        assertEquals(explanation.toString(), myModelView.getSearchIndexExplanationString());
    }
}
TOP

Related Classes of org.eurekastreams.commons.search.ProjectionToModelViewTransformerTest

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.