1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.guice.web;
20
21 import com.google.inject.spi.InjectionPoint;
22 import org.apache.shiro.web.env.EnvironmentLoaderListener;
23 import org.apache.shiro.web.filter.mgt.FilterChainResolver;
24 import org.apache.shiro.web.mgt.WebSecurityManager;
25 import org.easymock.Capture;
26 import org.junit.Test;
27
28 import javax.servlet.ServletContext;
29
30 import static org.easymock.EasyMock.*;
31 import static org.junit.Assert.assertSame;
32 import static org.junit.Assert.fail;
33
34 public class WebGuiceEnvironmentTest {
35
36 @Test
37 public void ensureInjectable() {
38 try {
39 InjectionPoint ip = InjectionPoint.forConstructorOf(WebGuiceEnvironment.class);
40 } catch (Exception e) {
41 fail("Could not create constructor injection point.");
42 }
43 }
44
45 @Test
46 public void testConstructor() {
47 WebSecurityManager securityManager = createMock(WebSecurityManager.class);
48 FilterChainResolver filterChainResolver = createMock(FilterChainResolver.class);
49 ServletContext servletContext = createMock(ServletContext.class);
50
51 Capture<WebGuiceEnvironment> capture = new Capture<WebGuiceEnvironment>();
52 servletContext.setAttribute(eq(EnvironmentLoaderListener.ENVIRONMENT_ATTRIBUTE_KEY), and(anyObject(WebGuiceEnvironment.class), capture(capture)));
53
54 replay(servletContext, securityManager, filterChainResolver);
55
56 WebGuiceEnvironment underTest = new WebGuiceEnvironment(filterChainResolver, servletContext, securityManager);
57
58 assertSame(securityManager, underTest.getSecurityManager());
59 assertSame(filterChainResolver, underTest.getFilterChainResolver());
60 assertSame(securityManager, underTest.getWebSecurityManager());
61 assertSame(servletContext, underTest.getServletContext());
62
63 assertSame(underTest, capture.getValue());
64
65 verify(servletContext);
66 }
67 }