001    // Copyright 2005 The Apache Software Foundation
002    //
003    // Licensed under the Apache License, Version 2.0 (the "License");
004    // you may not use this file except in compliance with the License.
005    // You may obtain a copy of the License at
006    //
007    //     http://www.apache.org/licenses/LICENSE-2.0
008    //
009    // Unless required by applicable law or agreed to in writing, software
010    // distributed under the License is distributed on an "AS IS" BASIS,
011    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012    // See the License for the specific language governing permissions and
013    // limitations under the License.
014    
015    package org.apache.tapestry.services.impl;
016    
017    import static org.easymock.EasyMock.expect;
018    
019    import java.util.Locale;
020    
021    import org.apache.tapestry.BaseComponentTestCase;
022    import org.apache.tapestry.engine.IPropertySource;
023    import org.testng.annotations.Test;
024    
025    /**
026     * Tests for {@link org.apache.tapestry.services.impl.LocalizedPropertySource}.
027     * 
028     * @author Howard M. Lewis Ship
029     * @since 4.0
030     */
031    @Test
032    public class TestLocalizedPropertySource extends BaseComponentTestCase
033    {
034        public void testFound()
035        {
036            IPropertySource ps = newMock(IPropertySource.class);
037    
038            expect(ps.getPropertyValue("property-name_en")).andReturn(null);
039    
040            expect(ps.getPropertyValue("property-name")).andReturn("fred");
041    
042            replay();
043    
044            LocalizedPropertySource lps = new LocalizedPropertySource(ps);
045    
046            String result = lps.getPropertyValue("property-name", Locale.ENGLISH);
047    
048            assertEquals("fred", result);
049    
050            verify();
051        }
052    
053        public void testNotFound()
054        {
055            IPropertySource ps = newMock(IPropertySource.class);
056    
057            expect(ps.getPropertyValue("property-name_fr")).andReturn(null);
058    
059            expect(ps.getPropertyValue("property-name")).andReturn(null);
060    
061            replay();
062    
063            LocalizedPropertySource lps = new LocalizedPropertySource(ps);
064    
065            assertNull(lps.getPropertyValue("property-name", Locale.FRENCH));
066    
067            verify();
068        }
069    }