test.pl.chilldev.web.tags.context.JspPageMetaModelResolverTest.java Source code

Java tutorial

Introduction

Here is the source code for test.pl.chilldev.web.tags.context.JspPageMetaModelResolverTest.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.context;

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

import javax.servlet.jsp.JspContext;

import org.apache.commons.lang3.StringEscapeUtils;

import org.springframework.mock.web.MockPageContext;

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

import pl.chilldev.web.tags.context.JspPageMetaModelResolver;
import pl.chilldev.web.tags.context.PageMetaModelContextException;
import pl.chilldev.web.tags.context.PageMetaModelResolver;

public class JspPageMetaModelResolverTest {
    @Test
    public void getPageMetaModel() throws PageMetaModelContextException {
        JspContext context = new MockPageContext();
        PageMetaModelResolver resolver = new JspPageMetaModelResolver();

        PageMetaModel page = resolver.getPageMetaModel(context);

        assertNotNull(
                "JspPageMetaModelResolver.getPageMetaModel() should create new page model for given context if there is none.",
                page);
        assertSame(
                "JspPageMetaModelResolver.getPageMetaModel() should register newly created page model for next uses.",
                page, resolver.getPageMetaModel(context));
    }

    @Test(expected = PageMetaModelContextException.class)
    public void getPageMetaModelInvalidType() throws PageMetaModelContextException {
        JspContext context = new MockPageContext();
        String attribute = "foo";
        Generator generator = new Generator(false);
        PageMetaModelResolver resolver = new JspPageMetaModelResolver(attribute, generator);

        context.setAttribute(attribute, resolver);
        resolver.getPageMetaModel(context);
    }

    @Test
    public void getPageMetaModelWithKey() throws PageMetaModelContextException {
        JspContext context = new MockPageContext();
        String attribute = "foo";
        PageMetaModelResolver resolver = new JspPageMetaModelResolver(attribute);

        PageMetaModel page = new PageMetaModel();
        context.setAttribute(attribute, page);
        assertSame(
                "JspPageMetaModelResolver.getPageMetaModel() should return existing page model if it's already in context.",
                page, resolver.getPageMetaModel(context));
    }

    @Test
    public void getPageMetaModelWithGenerator() throws PageMetaModelContextException {
        JspContext context = new MockPageContext();
        Generator generator = new Generator(false, StringEscapeUtils.ESCAPE_JSON);
        PageMetaModelResolver resolver = new JspPageMetaModelResolver(generator);

        PageMetaModel page = resolver.getPageMetaModel(context);
        page.addKeywords(new String[] { "\"" });

        assertEquals(
                "JspPageMetaModelResolver should initialize new page meta model with given markup generator if specified.",
                "<meta content=\"\\\"\" name=\"keywords\">", page.generateMetaElements());
    }
}