test.pl.chilldev.web.faces.context.FacesPageMetaModelResolverTest.java Source code

Java tutorial

Introduction

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

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

import javax.faces.view.facelets.FaceletContext;

import org.apache.commons.lang3.StringEscapeUtils;

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

import pl.chilldev.web.faces.context.FacesPageMetaModelResolver;
import pl.chilldev.web.faces.context.PageMetaModelContextException;
import pl.chilldev.web.faces.context.PageMetaModelResolver;

import test.pl.chilldev.web.faces.mock.MockFaceletContext;

public class FacesPageMetaModelResolverTest {
    @Test
    public void getPageMetaModel() throws PageMetaModelContextException {
        FaceletContext context = new MockFaceletContext();
        PageMetaModelResolver resolver = new FacesPageMetaModelResolver();

        PageMetaModel page = resolver.getPageMetaModel(context);

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

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

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

    @Test
    public void getPageMetaModelWithKey() throws PageMetaModelContextException {
        FaceletContext context = new MockFaceletContext();
        String attribute = "foo";
        PageMetaModelResolver resolver = new FacesPageMetaModelResolver(attribute);

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

    @Test
    public void getPageMetaModelWithGenerator() throws PageMetaModelContextException {
        FaceletContext context = new MockFaceletContext();
        Generator generator = new Generator(false, StringEscapeUtils.ESCAPE_JSON);
        PageMetaModelResolver resolver = new FacesPageMetaModelResolver(generator);

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

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