1   package org.seasar.cubby.action.impl;
2   
3   import javax.servlet.http.HttpServletRequest;
4   
5   import org.seasar.cubby.action.ActionErrors;
6   import org.seasar.extension.unit.S2TestCase;
7   
8   public class ActionErrorsImplTest extends S2TestCase {
9   
10  	private ActionErrors actionErrors;
11  
12  	@Override
13  	protected void setUp() throws Exception {
14  		include(this.getClass().getName().replaceAll("\\.", "/") + ".dicon");
15  	}
16  
17  	public void testRequestAttributes() {
18  		HttpServletRequest request = this.getRequest();
19  		assertSame(actionErrors, request.getAttribute("errors"));
20  		assertSame(actionErrors.getActionErrors(), request.getAttribute("actionErrors"));
21  		assertSame(actionErrors.getFieldErrors(), request.getAttribute("fieldErrors"));
22  		assertSame(actionErrors.getAllErrors(), request.getAttribute("allErrors"));
23  	}
24  
25  	public void testIsEmpty1() {
26  		assertTrue(actionErrors.isEmpty());
27  		actionErrors.addActionError("error1");
28  		assertFalse(actionErrors.isEmpty());
29  	}
30  
31  	public void testIsEmpty2() {
32  		assertTrue(actionErrors.isEmpty());
33  		actionErrors.addFieldError("field1", "error1");
34  		assertFalse(actionErrors.isEmpty());
35  	}
36  
37  	public void testAdd() {
38  		actionErrors.addActionError("error1");
39  		assertEquals(1, actionErrors.getActionErrors().size());
40  		assertEquals("error1", actionErrors.getActionErrors().get(0));
41  		assertEquals(1, actionErrors.getAllErrors().size());
42  		assertEquals("error1", actionErrors.getAllErrors().get(0));
43  
44  		actionErrors.addFieldError("field1", "error2");
45  		assertTrue(actionErrors.hasFieldError("field1"));
46  		assertFalse(actionErrors.hasFieldError("field2"));
47  		assertEquals(1, actionErrors.getFieldErrors().get("field1").size());
48  		assertEquals("error2", actionErrors.getFieldErrors().get("field1").get(0));
49  		assertEquals(2, actionErrors.getAllErrors().size());
50  		assertEquals("error1", actionErrors.getAllErrors().get(0));
51  		assertEquals("error2", actionErrors.getAllErrors().get(1));
52  
53  		actionErrors.addActionError("error3");
54  		assertEquals(2, actionErrors.getActionErrors().size());
55  		assertEquals("error1", actionErrors.getActionErrors().get(0));
56  		assertEquals("error3", actionErrors.getActionErrors().get(1));
57  		assertEquals(3, actionErrors.getAllErrors().size());
58  		assertEquals("error1", actionErrors.getAllErrors().get(0));
59  		assertEquals("error2", actionErrors.getAllErrors().get(1));
60  		assertEquals("error3", actionErrors.getAllErrors().get(2));
61  
62  		actionErrors.addFieldError("field1", "error4");
63  		actionErrors.addFieldError("field2", "error5");
64  		assertTrue(actionErrors.hasFieldError("field1"));
65  		assertTrue(actionErrors.hasFieldError("field2"));
66  		assertEquals(2, actionErrors.getFieldErrors().get("field1").size());
67  		assertEquals("error2", actionErrors.getFieldErrors().get("field1").get(0));
68  		assertEquals("error4", actionErrors.getFieldErrors().get("field1").get(1));
69  		assertEquals(1, actionErrors.getFieldErrors().get("field2").size());
70  		assertEquals("error5", actionErrors.getFieldErrors().get("field2").get(0));
71  		assertEquals(5, actionErrors.getAllErrors().size());
72  		assertEquals("error1", actionErrors.getAllErrors().get(0));
73  		assertEquals("error2", actionErrors.getAllErrors().get(1));
74  		assertEquals("error3", actionErrors.getAllErrors().get(2));
75  		assertEquals("error4", actionErrors.getAllErrors().get(3));
76  		assertEquals("error5", actionErrors.getAllErrors().get(4));
77  	}
78  }