Java tutorial
/** * 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.config; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.*; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.*; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.GenericBeanDefinition; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.beans.factory.xml.XmlReaderContext; import org.w3c.dom.Element; import pl.chilldev.web.core.markup.Generator; import pl.chilldev.web.core.page.PageMetaModel; import pl.chilldev.web.spring.config.HandlePageModelBeanDefinitionParser; import pl.chilldev.web.spring.context.PageMetaModelFactoryBean; @RunWith(MockitoJUnitRunner.class) public class HandlePageModelBeanDefinitionParserTest { @Mock private Element element; private XmlReaderContext readerContext; @Mock private BeanDefinitionRegistry registry; @Before public void setUp() { XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this.registry); this.readerContext = new XmlReaderContext(null, null, null, null, reader, null); } @Test public void parse() { GenericBeanDefinition pageMetaModelFactoryBean = new GenericBeanDefinition(); HandlePageModelBeanDefinitionParser parser = new HandlePageModelBeanDefinitionParser( pageMetaModelFactoryBean); when(this.element.hasAttribute("xhtml")).thenReturn(false); parser.parse(this.element, new ParserContext(this.readerContext, null)); verify(this.registry).registerBeanDefinition(PageMetaModelFactoryBean.class.getName(), pageMetaModelFactoryBean); verify(this.registry).registerBeanDefinition(eq(PageMetaModel.class.getName()), isA(BeanDefinition.class)); verify(this.registry, never()).registerBeanDefinition(eq(Generator.class.getName()), isA(BeanDefinition.class)); } @Test public void parseWithXhtml() { GenericBeanDefinition pageMetaModelFactoryBean = new GenericBeanDefinition(); HandlePageModelBeanDefinitionParser parser = new HandlePageModelBeanDefinitionParser( pageMetaModelFactoryBean); when(this.element.hasAttribute("xhtml")).thenReturn(true); when(this.element.getAttribute("xhtml")).thenReturn("false"); parser.parse(this.element, new ParserContext(this.readerContext, null)); verify(this.registry).registerBeanDefinition(PageMetaModelFactoryBean.class.getName(), pageMetaModelFactoryBean); verify(this.registry).registerBeanDefinition(eq(PageMetaModel.class.getName()), isA(BeanDefinition.class)); verify(this.registry).registerBeanDefinition(eq(Generator.class.getName()), isA(BeanDefinition.class)); } }