@Test void webConfiguration() { WebApplicationContextRunner webContextRunner = new WebApplicationContextRunner() .withConfiguration( AutoConfigurations.of(RestTemplateAutoConfiguration.class, JacksonAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class, WebMvcAutoConfiguration.class, InitializrAutoConfiguration.class)); webContextRunner.run((context) -> { assertThat(context).hasSingleBean(InitializrWebConfig.class); assertThat(context).hasSingleBean(MainController.class); assertThat(context).hasSingleBean(UiController.class); }); }
@Test public void requestContextFilter() { this.webApplicationContextRunner.run(context -> { assertThat(context).hasSingleBean(RequestContextFilter.class); }); } }
@Test public void testInterceptorReplacedByFilter() { this.webApplicationContextRunner.run(context -> { assertThat(context).doesNotHaveBean(OpenEntityManagerInViewInterceptor.class); assertThat(context).hasSingleBean(OpenEntityManagerInViewFilter.class); }); }
@Test public void testProductionIsDefault() { this.webApplicationContextRunner .run(context -> assertThat(context.getBean(JavaxFaces2_0Properties.class).getProjectStage()).isEqualTo(ProjectStage.Production) ); }
@Test void getConfiguration_noBasePackage() { this.webApplicationContextRunner.run(context -> { SpringBootAnnotationConfigProvider annotationConfigProvider = context.getBean( SpringBootAnnotationConfigProvider.class); assertThat(annotationConfigProvider).isNotNull(); MockServletContext servletContext = new MockServletContext(); Configuration configuration = annotationConfigProvider.getConfiguration(servletContext); assertThat(configuration.getRules().isEmpty()).isFalse(); }); } }
@Test public void testDisabledByProperty() { this.webApplicationContextRunner .withPropertyValues("spring.jpa.open-in-view=false") .run(context -> { assertThat(context).doesNotHaveBean(OpenEntityManagerInViewInterceptor.class); assertThat(context).doesNotHaveBean(OpenEntityManagerInViewFilter.class); }); }
@Test public void testDevelopmentWhenDebug() { this.webApplicationContextRunner .withPropertyValues("debug") .run(context -> assertThat(context.getBean(JavaxFaces2_0Properties.class).getProjectStage()).isEqualTo(ProjectStage.Development) ); }
@Test public void testServletContextAttributes_notAdded() { this.webApplicationContextRunner .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); ServletContext servletContext = mock(ServletContext.class); when(servletContext.addServlet(anyString(), any(Servlet.class))).thenReturn(null); facesServletRegistrationBean.onStartup(servletContext); verify(servletContext, times(0)).setAttribute(any(), any()); }); } }
@Test public void testServletContextAttributes_added() { this.webApplicationContextRunner .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); ServletContext servletContext = mock(ServletContext.class); when(servletContext.addServlet(anyString(), any(Servlet.class))).thenReturn(mock(ServletRegistration.Dynamic.class)); facesServletRegistrationBean.onStartup(servletContext); verify(servletContext, times(2)).setAttribute(any(), any()); }); }
@Test public void testDisabledByMissingEntityManagerClass() { this.webApplicationContextRunner .withClassLoader(new FilteredClassLoader(EntityManager.class)) .run(context -> { assertThat(context).doesNotHaveBean(OpenEntityManagerInViewInterceptor.class); assertThat(context).doesNotHaveBean(OpenEntityManagerInViewFilter.class); }); } }
@Test public void testDefaultMapping() { this.webApplicationContextRunner .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); assertThat(facesServletRegistrationBean.getUrlMappings()).containsExactlyInAnyOrder("/faces/*", "*.jsf", "*.faces", "*.xhtml"); }); }
@Test public void testTagDecoratorAdded() { this.webApplicationContextRunner .run(context -> { List<Class<? extends TagDecorator>> faceletsDecorators = context.getBean(JavaxFaces2_0Properties.class).getFaceletsDecorators(); assertThat(faceletsDecorators).contains(AngularTagDecorator.class); }); }
@Test public void apiVersionBeansAreCreatedWithDefault() { webApplicationContextRunner() .withUserConfiguration(ServicesConfiguration.class) .run((context) -> { assertThat(context).getBean(BrokerApiVersion.class) .hasFieldOrPropertyWithValue("apiVersion", API_VERSION_ANY); assertThat(context).hasSingleBean(ApiVersionInterceptor.class); assertThat(context).hasSingleBean(ApiVersionWebMvcConfigurerAdapter.class); }); }
@Test public void apiVersionBeansAreCreatedFromCustomVersionBean() { webApplicationContextRunner() .withUserConfiguration(ServicesConfiguration.class, CustomBrokerApiVersionConfigurationFromBean.class) .run((context) -> { assertThat(context).getBean(BrokerApiVersion.class) .hasFieldOrPropertyWithValue("apiVersion", API_VERSION_CURRENT); assertThat(context).hasSingleBean(ApiVersionInterceptor.class); assertThat(context).hasSingleBean(ApiVersionWebMvcConfigurerAdapter.class); }); }
@Test public void apiVersionBeansAreCreatedFromCustomVersionBeanOverridesProperty() { webApplicationContextRunner() .withUserConfiguration(ServicesConfiguration.class, CustomBrokerApiVersionConfigurationFromBeanAndProperty.class) .run((context) -> { assertThat(context).getBean(BrokerApiVersion.class) .hasFieldOrPropertyWithValue("apiVersion", "99.999"); assertThat(context).hasSingleBean(ApiVersionInterceptor.class); assertThat(context).hasSingleBean(ApiVersionWebMvcConfigurerAdapter.class); }); }
@Test public void testCustomMapping() { this.webApplicationContextRunner .withPropertyValues("joinfaces.faces-servlet.url-mappings=foo,bar") .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); assertThat(facesServletRegistrationBean.getUrlMappings()).containsExactlyInAnyOrder("foo", "bar"); }); }
@Test public void testDisableFacesservletToXhtmlDefaultMapping_false() { this.webApplicationContextRunner .withPropertyValues("joinfaces.jsf.disable-facesservlet-to-xhtml=false") .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); assertThat(facesServletRegistrationBean.getUrlMappings()).containsExactlyInAnyOrder("/faces/*", "*.jsf", "*.faces", "*.xhtml"); }); }
@Test public void testDisableFacesservletToXhtmlDefaultMapping_true() { this.webApplicationContextRunner .withPropertyValues("joinfaces.jsf.disable-facesservlet-to-xhtml=true") .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); assertThat(facesServletRegistrationBean.getUrlMappings()).containsExactlyInAnyOrder("/faces/*", "*.jsf", "*.faces"); }); }
@Test public void testDisableFacesservletToXhtmlCustomMapping() { this.webApplicationContextRunner .withPropertyValues("joinfaces.jsf.disable-facesservlet-to-xhtml=true", "joinfaces.faces-servlet.url-mappings=*.xhtml") .run(context -> { ServletRegistrationBean<FacesServlet> facesServletRegistrationBean = (ServletRegistrationBean<FacesServlet>) context.getBean("facesServletRegistrationBean"); assertThat(facesServletRegistrationBean.getUrlMappings()).containsExactly("*.xhtml"); }); }
@Test public void testTagDecoratorAlreadyPresent() { this.webApplicationContextRunner .withPropertyValues("joinfaces.jsf.facelets-decorators=de.beyondjava.angularFaces.core.tagTransformer.AngularTagDecorator") .run(context -> { List<Class<? extends TagDecorator>> faceletsDecorators = context.getBean(JavaxFaces2_0Properties.class).getFaceletsDecorators(); assertThat(faceletsDecorators).containsOnlyOnce(AngularTagDecorator.class); }); } }