View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
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  }