test.pl.chilldev.web.spring.context.SpringBeansFacesPageMetaModelResolverTest.java Source code

Java tutorial

Introduction

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

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

import javax.faces.view.facelets.FaceletContext;

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

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.GenericWebApplicationContext;

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

import pl.chilldev.web.spring.context.SpringBeansFacesPageMetaModelResolver;

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

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

@RunWith(MockitoJUnitRunner.class)
public class SpringBeansFacesPageMetaModelResolverTest {
    @Mock
    private WebApplicationContext appContext;

    @Test
    public void getPageMetaModel() throws PageMetaModelContextException {
        FaceletContext faceletContext = new MockFaceletContext();
        faceletContext.getFacesContext().getExternalContext().getApplicationMap()
                .put(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, this.appContext);

        PageMetaModelResolver resolver = new SpringBeansFacesPageMetaModelResolver();
        PageMetaModel page = new PageMetaModel();

        when(this.appContext.getBean(PageMetaModel.class)).thenReturn(page);

        assertSame(
                "SpringBeansFacesPageMetaModelResolver.getPageMetaModel() should return page model from Spring container.",
                page, resolver.getPageMetaModel(faceletContext));
    }

    @Test(expected = PageMetaModelContextException.class)
    public void getPageMetaModelWithoutBean() throws PageMetaModelContextException {
        GenericWebApplicationContext appContext = new GenericWebApplicationContext();
        appContext.refresh();
        FaceletContext faceletContext = new MockFaceletContext();
        faceletContext.getFacesContext().getExternalContext().getApplicationMap()
                .put(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, appContext);

        PageMetaModelResolver resolver = new SpringBeansFacesPageMetaModelResolver();
        resolver.getPageMetaModel(faceletContext);
    }
}