Package org.apache.tiles.velocity.template

Source Code of org.apache.tiles.velocity.template.Tiles2ToolTest

/*
* $Id: Tiles2ToolTest.java 904552 2010-01-29 16:41:26Z apetrelli $
*
* 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.tiles.velocity.template;

import static org.junit.Assert.*;
import static org.easymock.classextension.EasyMock.*;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.tiles.Attribute;
import org.apache.tiles.AttributeContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.servlet.context.ServletUtil;
import org.apache.velocity.context.Context;
import org.apache.velocity.runtime.Renderable;
import org.junit.Before;
import org.junit.Test;

/**
* Tests {@link Tiles2Tool}.
*/
public class Tiles2ToolTest {

    /**
     * The key of the attribute that will be used to store the repository of "models".
     */
    private static final String TILES_VELOCITY_REPOSITORY_KEY = "org.apache.tiles.velocity.TilesVelocityRepository";

    /**
     * The tool to test.
     */
    private Tiles2Tool tool;

    /**
     * The request object.
     */
    private HttpServletRequest request;

    /**
     * The response object.
     */
    private HttpServletResponse response;

    /**
     * The servlet context.
     */
    private ServletContext servletContext;

    /**
     * The current velocity context.
     */
    private Context velocityContext;

    /**
     * @throws java.lang.Exception If something goes wrong.
     */
    @Before
    public void setUp() throws Exception {
        tool = new Tiles2Tool();
        request = createMock(HttpServletRequest.class);
        response = createMock(HttpServletResponse.class);
        velocityContext = createMock(Context.class);
        servletContext = createMock(ServletContext.class);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#addAttribute(java.util.Map)}.
     */
    @Test
    public void testAddAttributeMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        AddAttributeVModel model = createMock(AddAttributeVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getAddAttribute()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(tool, tool.addAttribute(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#addAttribute()}.
     */
    @Test
    public void testAddAttribute() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        AddAttributeVModel model = createMock(AddAttributeVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getAddAttribute()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.addAttribute());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#addListAttribute()}.
     */
    @Test
    public void testAddListAttribute() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        AddListAttributeVModel model = createMock(AddListAttributeVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getAddListAttribute()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.addListAttribute());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#definition(java.util.Map)}.
     */
    @Test
    public void testDefinitionMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        DefinitionVModel model = createMock(DefinitionVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getDefinition()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(tool, tool.definition(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#definition()}.
     */
    @Test
    public void testDefinition() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        DefinitionVModel model = createMock(DefinitionVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getDefinition()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.definition());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#getAsString(java.util.Map)}.
     */
    @Test
    public void testGetAsStringMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        GetAsStringVModel model = createMock(GetAsStringVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getGetAsString()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(renderable, tool.getAsString(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#getAsString()}.
     */
    @Test
    public void testGetAsString() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        GetAsStringVModel model = createMock(GetAsStringVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getGetAsString()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.getAsString());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#importAttribute(java.util.Map)}.
     */
    @Test
    public void testImportAttribute() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        ImportAttributeVModel model = createMock(ImportAttributeVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getImportAttribute()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(renderable, tool.importAttribute(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#insertAttribute(java.util.Map)}.
     */
    @Test
    public void testInsertAttributeMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        InsertAttributeVModel model = createMock(InsertAttributeVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getInsertAttribute()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(renderable, tool.insertAttribute(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#insertAttribute()}.
     */
    @Test
    public void testInsertAttribute() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        InsertAttributeVModel model = createMock(InsertAttributeVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getInsertAttribute()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.insertAttribute());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#insertDefinition(java.util.Map)}.
     */
    @Test
    public void testInsertDefinitionMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        InsertDefinitionVModel model = createMock(InsertDefinitionVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getInsertDefinition()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(renderable, tool.insertDefinition(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#insertDefinition()}.
     */
    @Test
    public void testInsertDefinition() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        InsertDefinitionVModel model = createMock(InsertDefinitionVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getInsertDefinition()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.insertDefinition());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#insertTemplate(java.util.Map)}.
     */
    @Test
    public void testInsertTemplateMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        InsertTemplateVModel model = createMock(InsertTemplateVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getInsertTemplate()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(renderable, tool.insertTemplate(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#insertTemplate()}.
     */
    @Test
    public void testInsertTemplate() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        InsertTemplateVModel model = createMock(InsertTemplateVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getInsertTemplate()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.insertTemplate());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#putAttribute(java.util.Map)}.
     */
    @Test
    public void testPutAttributeMapOfStringObject() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        PutAttributeVModel model = createMock(PutAttributeVModel.class);
        Renderable renderable = createMock(Renderable.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getPutAttribute()).andReturn(model);
        expect(model.execute(request, response, velocityContext, params)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(tool, tool.putAttribute(params));
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#putAttribute()}.
     */
    @Test
    public void testPutAttribute() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        PutAttributeVModel model = createMock(PutAttributeVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getPutAttribute()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.putAttribute());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#putListAttribute()}.
     */
    @Test
    public void testPutListAttribute() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        PutListAttributeVModel model = createMock(PutListAttributeVModel.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getPutListAttribute()).andReturn(model);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.putListAttribute());
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#setCurrentContainer(java.lang.String)}.
     */
    @Test
    public void testSetCurrentContainer() {
        TilesContainer container = createMock(TilesContainer.class);

        expect(servletContext.getAttribute("myKey")).andReturn(container);
        request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);

        replay(velocityContext, request, response, servletContext, container);
        initializeTool();
        assertEquals(tool, tool.setCurrentContainer("myKey"));
        verify(velocityContext, request, response, servletContext, container);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#start(java.util.Map)}.
     */
    @Test
    public void testStart() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        PutAttributeVModel model = createMock(PutAttributeVModel.class);
        Map<String, Object> params = createParams();

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getPutAttribute()).andReturn(model);
        model.start(request, response, velocityContext, params);

        replay(velocityContext, request, response, servletContext, repository, model);
        initializeTool();
        assertEquals(tool, tool.putAttribute().start(params));
        verify(velocityContext, request, response, servletContext, repository, model);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#end()}.
     */
    @Test
    public void testEnd() {
        TilesVelocityRepository repository = createMock(TilesVelocityRepository.class);
        PutAttributeVModel model = createMock(PutAttributeVModel.class);
        Renderable renderable = createMock(Renderable.class);

        expect(servletContext.getAttribute(TILES_VELOCITY_REPOSITORY_KEY)).andReturn(repository);
        expect(repository.getPutAttribute()).andReturn(model);
        expect(model.end(request, response, velocityContext)).andReturn(renderable);

        replay(velocityContext, request, response, servletContext, repository, model, renderable);
        initializeTool();
        assertEquals(renderable, tool.putAttribute().end());
        verify(velocityContext, request, response, servletContext, repository, model, renderable);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#get(java.lang.String)}.
     */
    @Test
    public void testGetAttribute() {
        TilesContainer container = createMock(TilesContainer.class);
        AttributeContext attributeContext = createMock(AttributeContext.class);
        Attribute attribute = new Attribute("myAttributeValue");

        expect(request.getAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
        expect(container.getAttributeContext(velocityContext, request, response)).andReturn(attributeContext);
        expect(attributeContext.getAttribute("myAttribute")).andReturn(attribute);

        replay(velocityContext, request, response, servletContext, container, attributeContext);
        initializeTool();
        assertEquals(attribute, tool.get("myAttribute"));
        verify(velocityContext, request, response, servletContext, container, attributeContext);
    }

    /**
     * Test method for {@link org.apache.tiles.velocity.template.Tiles2Tool#toString()}.
     */
    @Test
    public void testToString() {
        assertEquals("", tool.toString());
    }

    /**
     * Initializes the tool for the test.
     */
    private void initializeTool() {
        tool.setRequest(request);
        tool.setResponse(response);
        tool.setServletContext(servletContext);
        tool.setVelocityContext(velocityContext);
    }

    /**
     * Creates some mock params.
     *
     * @return The parameters.
     */
    private Map<String, Object> createParams() {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("one", "value1");
        params.put("two", "value2");
        return params;
    }
}
TOP

Related Classes of org.apache.tiles.velocity.template.Tiles2ToolTest

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.