1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.tiles.servlet.context;
23
24 import javax.servlet.ServletContext;
25 import javax.servlet.ServletRequest;
26
27 import org.apache.tiles.TilesContainer;
28 import org.apache.tiles.access.TilesAccess;
29 import org.easymock.EasyMock;
30
31 import junit.framework.TestCase;
32
33
34
35
36
37
38 public class ServletUtilTest extends TestCase {
39
40
41
42
43 public void testGetContainer() {
44 ServletContext context = EasyMock.createMock(ServletContext.class);
45 TilesContainer container = EasyMock.createMock(TilesContainer.class);
46 EasyMock.expect(context.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
47 EasyMock.replay(context, container);
48 assertEquals(container, ServletUtil.getContainer(context));
49 EasyMock.verify(context, container);
50 }
51
52
53
54
55 public void testGetContainerWithKey() {
56 ServletContext context = EasyMock.createMock(ServletContext.class);
57 TilesContainer container = EasyMock.createMock(TilesContainer.class);
58 EasyMock.expect(context.getAttribute("myKey")).andReturn(container);
59 EasyMock.replay(context, container);
60 assertEquals(container, ServletUtil.getContainer(context, "myKey"));
61 EasyMock.verify(context, container);
62 }
63
64
65
66
67 public void testSetContainer() {
68 ServletContext context = EasyMock.createMock(ServletContext.class);
69 TilesContainer container = EasyMock.createMock(TilesContainer.class);
70 context.setAttribute(TilesAccess.CONTAINER_ATTRIBUTE, container);
71 EasyMock.replay(context, container);
72 ServletUtil.setContainer(context, container);
73 EasyMock.verify(context, container);
74 }
75
76
77
78
79
80 public void testSetContainerWithKey() {
81 ServletContext context = EasyMock.createMock(ServletContext.class);
82 TilesContainer container = EasyMock.createMock(TilesContainer.class);
83 context.setAttribute("myKey", container);
84 EasyMock.replay(context, container);
85 ServletUtil.setContainer(context, container, "myKey");
86 EasyMock.verify(context, container);
87 }
88
89
90
91
92
93 public void testSetCurrentContainer() {
94 ServletRequest request = EasyMock.createMock(ServletRequest.class);
95 ServletContext context = EasyMock.createMock(ServletContext.class);
96 TilesContainer container = EasyMock.createMock(TilesContainer.class);
97 EasyMock.expect(context.getAttribute("myKey")).andReturn(container);
98 request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME,
99 container);
100 EasyMock.expect(request.getAttribute(ServletUtil
101 .CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
102 EasyMock.replay(request, context, container);
103 ServletUtil.setCurrentContainer(request, context, "myKey");
104 assertTrue("The containers are not the same", ServletUtil
105 .getCurrentContainer(request, context) == container);
106 }
107
108
109
110
111
112 public void testSetCurrentContainerWithContainer() {
113 ServletRequest request = EasyMock.createMock(ServletRequest.class);
114 ServletContext context = EasyMock.createMock(ServletContext.class);
115 TilesContainer container = EasyMock.createMock(TilesContainer.class);
116 request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME,
117 container);
118 EasyMock.expect(request.getAttribute(ServletUtil
119 .CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
120 EasyMock.replay(request, context, container);
121 ServletUtil.setCurrentContainer(request, context, container);
122 assertTrue("The containers are not the same", ServletUtil
123 .getCurrentContainer(request, context) == container);
124 }
125
126
127
128
129 public void testGetCurrentContainer() {
130 ServletRequest request = EasyMock.createMock(ServletRequest.class);
131 ServletContext context = EasyMock.createMock(ServletContext.class);
132 TilesContainer defaultContainer = EasyMock.createMock(
133 TilesContainer.class);
134 TilesContainer alternateContainer = EasyMock.createMock(
135 TilesContainer.class);
136 EasyMock.expect(request.getAttribute(ServletUtil
137 .CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
138 EasyMock.expect(context.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE))
139 .andReturn(defaultContainer);
140 request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME,
141 defaultContainer);
142 request.setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME,
143 alternateContainer);
144 EasyMock.expect(request.getAttribute(ServletUtil
145 .CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(alternateContainer);
146 EasyMock.replay(request, context, defaultContainer, alternateContainer);
147 TilesContainer currentContainer = ServletUtil.getCurrentContainer(
148 request, context);
149 assertTrue("The containers are not the same",
150 currentContainer == defaultContainer);
151 ServletUtil.setCurrentContainer(request, context, alternateContainer);
152 currentContainer = ServletUtil.getCurrentContainer(request, context);
153 EasyMock.verify(request, context, defaultContainer, alternateContainer);
154 assertTrue("The containers are not the same",
155 currentContainer == alternateContainer);
156 }
157 }