001 package org.apache.tapestry.engine.encoders; 002 003 import org.apache.tapestry.TestBase; 004 import org.apache.tapestry.engine.ServiceEncoding; 005 import org.apache.tapestry.services.ServiceConstants; 006 import static org.easymock.EasyMock.expect; 007 import org.testng.annotations.Test; 008 009 /** 010 * Tests functionality of the {@link PathEncoder} . 011 */ 012 @Test 013 public class PathEncoderTest extends TestBase { 014 015 public void test_Wrong_Service() 016 { 017 ServiceEncoding encoding = newEncoding(); 018 019 trainGetParameterValue(encoding, ServiceConstants.SERVICE, "foo"); 020 021 replay(); 022 023 PathEncoder encoder = new PathEncoder(); 024 encoder.setService("bar"); 025 026 encoder.encode(encoding); 027 028 verify(); 029 } 030 031 protected void trainGetParameterValue(ServiceEncoding encoding, String name, String value) 032 { 033 expect(encoding.getParameterValue(name)).andReturn(value); 034 } 035 036 protected ServiceEncoding newEncoding() 037 { 038 return newMock(ServiceEncoding.class); 039 } 040 041 public void test_Wrong_Path() 042 { 043 ServiceEncoding encoding = newEncoding(); 044 045 trainGetServletPath(encoding, "/Home.page"); 046 047 replay(); 048 049 PathEncoder encoder = new PathEncoder(); 050 encoder.setPath("/rounded"); 051 encoder.setService("rounded"); 052 053 encoder.decode(encoding); 054 055 verify(); 056 } 057 058 protected void trainGetServletPath(ServiceEncoding encoding, String servletPath) 059 { 060 expect(encoding.getServletPath()).andReturn(servletPath); 061 } 062 063 public void test_Encode() 064 { 065 ServiceEncoding encoding = newEncoding(); 066 067 trainGetParameterValue(encoding, ServiceConstants.SERVICE, "rounded"); 068 069 encoding.setServletPath("/rounded"); 070 encoding.setParameterValue(ServiceConstants.SERVICE, null); 071 072 replay(); 073 074 PathEncoder encoder = new PathEncoder(); 075 encoder.setPath("/rounded"); 076 encoder.setService("rounded"); 077 078 encoder.encode(encoding); 079 080 verify(); 081 } 082 }