001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.commons.chain.web.servlet; 018 019 020 import junit.framework.Test; 021 import junit.framework.TestCase; 022 import junit.framework.TestSuite; 023 import org.apache.commons.chain.Context; 024 025 import javax.servlet.ServletContext; 026 import javax.servlet.http.HttpServletRequest; 027 import javax.servlet.http.HttpServletResponse; 028 import javax.servlet.http.HttpSession; 029 import java.util.Locale; 030 031 032 // Test case for org.apache.commons.chain.web.servlet.ServletSetLocaleCommand 033 034 public class ServletSetLocaleCommandTestCase extends TestCase { 035 036 037 // ---------------------------------------------------------- Constructors 038 039 /** 040 * Construct a new instance of this test case. 041 * 042 * @param name Name of the test case 043 */ 044 public ServletSetLocaleCommandTestCase(String name) { 045 super(name); 046 } 047 048 049 // ----------------------------------------------------- Instance Variables 050 051 052 protected Locale locale = null; 053 054 // Servlet API Objects 055 protected ServletContext scontext = null; 056 protected HttpServletRequest request = null; 057 protected HttpServletResponse response = null; 058 protected HttpSession session = null; 059 060 // Chain API Objects 061 protected Context context = null; 062 protected ServletGetLocaleCommand command = null; 063 064 065 // -------------------------------------------------- Overall Test Methods 066 067 068 /** 069 * Set up instance variables required by this test case. 070 */ 071 public void setUp() { 072 073 locale = new Locale("en", "US"); 074 075 // Set up Servlet API Objects 076 scontext = new MockServletContext(); 077 session = new MockHttpSession(scontext); 078 request = new MockHttpServletRequest("/context", "/servlet", 079 "/path/info", "a=b&c=d", 080 session); 081 response = new MockHttpServletResponse(); 082 083 // Set up Chain API Objects 084 context = new ServletWebContext(scontext, request, response); 085 command = new ServletGetLocaleCommand(); 086 087 } 088 089 090 /** 091 * Return the tests included in this test suite. 092 */ 093 public static Test suite() { 094 095 return (new TestSuite(ServletGetLocaleCommandTestCase.class)); 096 097 } 098 099 100 /** 101 * Tear down instance variables required by this test case. 102 */ 103 public void tearDown() { 104 105 scontext = null; 106 session = null; 107 request = null; 108 response = null; 109 110 context = null; 111 command = null; 112 113 } 114 115 116 // ------------------------------------------------- Individual Test Methods 117 118 119 // Test configured behavior 120 public void testConfigured() throws Exception { 121 122 command.setLocaleKey("special"); 123 assertEquals("special", command.getLocaleKey()); 124 check(context, command); 125 126 } 127 128 129 // Test default behavior 130 public void testDefaut() throws Exception { 131 132 assertEquals("locale", command.getLocaleKey()); 133 check(context, command); 134 135 } 136 137 138 // --------------------------------------------------------- Support Methods 139 140 141 protected void check(Context context, ServletGetLocaleCommand command) 142 throws Exception { 143 144 String localeKey = command.getLocaleKey(); 145 assertNotNull(localeKey); 146 Object value = context.get(localeKey); 147 assertNull(value); 148 context.put(localeKey, locale); 149 assertNotNull(context.get(localeKey)); 150 assertNull(response.getLocale()); 151 boolean result = command.execute(context); 152 assertFalse(result); 153 assertNotNull(response.getLocale()); 154 assertEquals(locale, response.getLocale()); 155 156 } 157 158 159 }