1   package org.paneris.jammyjoes.controller;
2   
3   import java.util.LinkedList;
4   
5   import junit.framework.TestCase;
6   
7   import org.melati.template.ServletTemplateContext;
8   
9   import com.mockobjects.dynamic.Mock;
10  
11  public class TestCaseSearchCriteria extends TestCase {
12  
13    public void testNulled() {
14      ParameterProvider unit = new ParameterProvider(null,null);
15      String param = unit.nulled(null);
16      assertEquals(null, param);
17    }
18    public void testNotNulled() {
19      ParameterProvider unit = new ParameterProvider(null,null);
20      String param = unit.nulled("a");
21      assertEquals("a", param);
22    }
23    public void testNulledEmpty() {
24      ParameterProvider unit = new ParameterProvider(null,null);
25      String param = unit.nulled("");
26      assertEquals(null, param);
27    }
28    public void testNulledUnderscore() {
29      ParameterProvider unit = new ParameterProvider(null,null);
30      String param = unit.nulled("_");
31      assertEquals(null, param);
32    }
33  
34    public void testTemplateContextParameter() {
35      Mock contextControl = new Mock(ServletTemplateContext.class); 
36      ServletTemplateContext tc = (ServletTemplateContext)contextControl.proxy();
37      ParameterProvider unit = new ParameterProvider(tc, null);
38      contextControl.expectAndReturn("getForm", "troid", "1");;
39      String param = unit.getParam("troid", 0);
40      assertEquals("1", param);
41    }
42  
43    public void testPathInfoParameter() {
44      Mock contextControl = new Mock(ServletTemplateContext.class); 
45      ServletTemplateContext tc = (ServletTemplateContext)contextControl.proxy();
46      String[] pathInfo = {"1"};
47      ParameterProvider unit = new ParameterProvider(tc, pathInfo);
48      contextControl.expectAndReturn("getForm", "troid", null);
49      String param = unit.getParam("troid", 0);
50      assertEquals("1",param);
51    }
52  
53    public void testPathInfoNoParameter() {
54      Mock contextControl = new Mock(ServletTemplateContext.class); 
55      ServletTemplateContext tc = (ServletTemplateContext)contextControl.proxy();
56      String[] pathInfo = {"1"};
57      ParameterProvider unit = new ParameterProvider(tc, pathInfo);
58      contextControl.expectAndReturn("getForm", "troid", null);
59      String param = unit.getParam("troid", 1);
60      assertEquals(null,param);
61    }
62  
63    public void testPathInfoEncodedParameter() {
64      Mock contextControl = new Mock(ServletTemplateContext.class); 
65      ServletTemplateContext tc = (ServletTemplateContext)contextControl.proxy();
66      String[] pathInfo = {"%2b"};
67      ParameterProvider unit = new ParameterProvider(tc, pathInfo);
68      contextControl.expectAndReturn("getForm", "troid", null);
69      String param = unit.getParam("troid", 0);
70      assertEquals("+",param);
71    }
72    
73    
74    public void testTroidConstraint() {
75      Mock contextControl = new Mock(ServletTemplateContext.class); 
76      contextControl.expectAndReturn("getForm", "troid", "1");
77      ServletTemplateContext tc = (ServletTemplateContext)contextControl.proxy();
78      TemplateContextSearchCriteria unit = new TemplateContextSearchCriteria(tc, null, null,new Logger("."), null);
79      LinkedList constraints = new LinkedList();
80      unit.constrainTroid(constraints);
81      assertEquals(1, constraints.size());
82      assertEquals("\"id\" = 1", constraints.getFirst().toString());
83    }
84  
85  }