001package de.cuioss.test.jsf.producer; 002 003import java.util.Map; 004 005import javax.enterprise.context.ApplicationScoped; 006import javax.enterprise.context.RequestScoped; 007import javax.enterprise.inject.Produces; 008import javax.faces.annotation.ApplicationMap; 009import javax.faces.annotation.HeaderMap; 010import javax.faces.annotation.HeaderValuesMap; 011import javax.faces.annotation.InitParameterMap; 012import javax.faces.annotation.RequestCookieMap; 013import javax.faces.annotation.RequestParameterMap; 014import javax.faces.annotation.SessionMap; 015import javax.faces.annotation.ViewMap; 016import javax.faces.application.Application; 017import javax.faces.component.UIViewRoot; 018import javax.faces.context.ExternalContext; 019import javax.faces.context.FacesContext; 020import javax.inject.Named; 021 022/** 023 * Various JSF Producers for junit tests. 024 * 025 * Reason: In the test context we don't have a JSF implementation, which would 026 * provide equivalent producers. 027 * 028 * It is designed as 'opt-in'. Use with {@code @AddBeanClasses}. 029 * 030 * @author Oliver Wolff 031 */ 032@ApplicationScoped 033public class JsfObjectsProducers { 034 035 @Produces 036 @RequestScoped 037 @Named 038 FacesContext getFacesContext() { 039 return FacesContext.getCurrentInstance(); 040 } 041 042 @Produces 043 @RequestScoped 044 @Named 045 ExternalContext getExternalContext() { 046 return getFacesContext().getExternalContext(); 047 } 048 049 @Produces 050 @ApplicationScoped 051 Application produceApplication() { 052 return FacesContext.getCurrentInstance().getApplication(); 053 } 054 055 @Produces 056 @RequestScoped 057 @Named 058 Object getRequest() { 059 return getExternalContext().getRequest(); 060 } 061 062 @Produces 063 @RequestScoped 064 @SessionMap 065 @Named("sessionScope") 066 Map<String, Object> getSessionMap() { 067 return getExternalContext().getSessionMap(); 068 } 069 070 @Produces 071 @RequestScoped 072 @RequestParameterMap 073 @Named("param") 074 Map<String, String> getRequestParameterMap() { 075 return getExternalContext().getRequestParameterMap(); 076 } 077 078 @Produces 079 @RequestScoped 080 @Named("view") 081 UIViewRoot getViewRoot() { 082 return getFacesContext().getViewRoot(); 083 } 084 085 @Produces 086 @RequestScoped 087 @ViewMap 088 @Named("viewScope") 089 Map<String, Object> getViewMap() { 090 return getFacesContext().getViewRoot().getViewMap(); 091 } 092 093 @Produces 094 @RequestScoped 095 @HeaderMap 096 @Named("header") 097 Map<String, String> getHeaderMap() { 098 return getExternalContext().getRequestHeaderMap(); 099 } 100 101 @Produces 102 @RequestScoped 103 @HeaderValuesMap 104 @Named("headerValues") 105 Map<String, String[]> getHeaderValuesMap() { 106 return getExternalContext().getRequestHeaderValuesMap(); 107 } 108 109 @Produces 110 @RequestScoped 111 @InitParameterMap 112 @Named("initParam") 113 Map<String, String> getInitParameter() { 114 return getExternalContext().getInitParameterMap(); 115 } 116 117 @Produces 118 @ApplicationScoped 119 @ApplicationMap 120 @Named("applicationScope") 121 Map<String, Object> getApplicationMap() { 122 return getExternalContext().getApplicationMap(); 123 } 124 125 @Produces 126 @RequestScoped 127 @RequestCookieMap 128 @Named("cookie") 129 Map<String, Object> getRequestCookieMap() { 130 return FacesContext.getCurrentInstance().getExternalContext().getRequestCookieMap(); 131 } 132}