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.myfaces.test; 20 21 import java.io.StringWriter; 22 23 import org.apache.myfaces.shared_tomahawk.config.MyfacesConfig; 24 import org.apache.myfaces.test.utils.TestUtils; 25 import org.apache.shale.test.base.AbstractViewControllerTestCase; 26 import org.apache.shale.test.mock.MockResponseWriter; 27 28 /** 29 * Abstract Shale Test base class, which sets up the JSF environment. If the test 30 * overrides <code>setUp()</code> and/or <code>tearDown()</code>, then those 31 * methods but call the overwitten method to insure a valid test environment. 32 */ 33 public class AbstractTomahawkViewControllerTestCase extends AbstractViewControllerTestCase 34 { 35 /** Response Writer */ 36 private MockResponseWriter writer; 37 38 /** 39 * Construct a new instance of the test. 40 * 41 * @param name Name of the test. 42 */ 43 public AbstractTomahawkViewControllerTestCase(String name) 44 { 45 super(name); 46 } 47 48 /** 49 * Setup the test environment, including the following: 50 * <ul> 51 * <li>Set the Application Map.</li> 52 * <li>Set a response writer</li> 53 * <li>Add Tomahawk's renderers to the faces context.</li> 54 * </ul> 55 */ 56 protected void setUp() throws Exception 57 { 58 super.setUp(); 59 // additional setup not provided automatically by the shale mock stuff 60 facesContext.getExternalContext().getApplicationMap().put( 61 MyfacesConfig.class.getName(), new MyfacesConfig()); 62 writer = new MockResponseWriter(new StringWriter(), null, null); 63 facesContext.setResponseWriter(writer); 64 65 TestUtils.addDefaultRenderers(facesContext); 66 } 67 68 /** 69 * Tear down the test environment. 70 */ 71 protected void tearDown() throws Exception 72 { 73 super.tearDown(); 74 } 75 76 /** 77 * Verify the following: 78 * <ul> 79 * <li>id is not null</li> 80 * <li>Response is complete</li> 81 * <li>Responce contains the id</li> 82 * </ul> 83 * 84 * @param id ID to verify 85 */ 86 protected void assertIdExists(String id) 87 { 88 assertNotNull("ID is not null", id); 89 assertTrue("Response Complete", facesContext.getResponseComplete()); 90 String output = writer.getWriter().toString(); 91 // System.out.println("Output = '" + output + "'"); 92 assertNotNull("Has output", output); 93 assertTrue("Contains id '" + id + "'", output.indexOf(id) != -1); 94 } 95 96 }