test.pl.chilldev.web.tags.page.MetaNameTagTest.java Source code

Java tutorial

Introduction

Here is the source code for test.pl.chilldev.web.tags.page.MetaNameTagTest.java

Source

/**
 * This file is part of the ChillDev-Web.
 *
 * @license http://mit-license.org/ The MIT license
 * @copyright 2014  by Rafa Wrzeszcz - Wrzasq.pl.
 */

package test.pl.chilldev.web.tags.page;

import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyContent;

import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.*;

import org.springframework.mock.web.MockPageContext;

import pl.chilldev.web.core.page.PageMetaModel;

import pl.chilldev.web.tags.context.JspPageMetaModelResolver;
import pl.chilldev.web.tags.context.PageMetaModelContextUtils;
import pl.chilldev.web.tags.page.MetaNameTag;

@RunWith(MockitoJUnitRunner.class)
public class MetaNameTagTest {
    @Mock
    private PageMetaModel page;

    @Mock
    private BodyContent body;

    @Test
    public void doEndTag() throws JspTagException {
        PageContext context = new MockPageContext();
        MetaNameTag tag = new MetaNameTag();
        tag.setPageContext(context);

        // set up context
        String attribute = "foo";
        context.setAttribute(attribute, this.page);

        // set up resolver
        PageMetaModelContextUtils.setPageMetaModelResolver(new JspPageMetaModelResolver(attribute));

        String key = "bar";
        String value = "baz";

        // run the tag
        tag.setKey(key);
        tag.setValue(value);
        tag.doEndTag();

        verify(this.page).setMetaName(key, value);
    }

    @Test
    public void doEndTagWithBodyContent() throws JspTagException {
        PageContext context = new MockPageContext();
        MetaNameTag tag = new MetaNameTag();
        tag.setPageContext(context);

        // set up context
        String attribute = "foo";
        context.setAttribute(attribute, this.page);

        // set up resolver
        PageMetaModelContextUtils.setPageMetaModelResolver(new JspPageMetaModelResolver(attribute));

        String key = "bar";
        String value = "baz";

        when(this.body.getString()).thenReturn(value);

        // run the tag
        tag.setKey(key);
        tag.setBodyContent(this.body);
        tag.doEndTag();

        verify(this.page).setMetaName(key, value);
    }
}