Ignore:
Timestamp:
2011-09-17T10:59:32+02:00 (13 years ago)
Author:
jttt
Message:

Custom primitive name formatters via tagging presets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateEngineTest.java

    r4282 r4431  
    77
    88import org.junit.Assert;
     9import org.junit.BeforeClass;
    910import org.junit.Test;
     11import org.openstreetmap.josm.Main;
    1012import org.openstreetmap.josm.actions.search.SearchCompiler;
    1113import org.openstreetmap.josm.actions.search.SearchCompiler.Match;
     14import org.openstreetmap.josm.data.Preferences;
     15import org.openstreetmap.josm.data.osm.Relation;
    1216import org.unitils.reflectionassert.ReflectionAssert;
    1317
    1418public class TemplateEngineTest {
     19
     20    @BeforeClass
     21    public static void before() {
     22        Main.pref = new Preferences();
     23    }
    1524
    1625    @Test
     
    6271    TemplateEngineDataProvider dataProvider = new TemplateEngineDataProvider() {
    6372        @Override
    64         public Object getTemplateValue(String name) {
    65             if ("name".equals(name))
    66                 return "waypointName";
    67             else if ("number".equals(name))
    68                 return 10;
    69             else
    70                 return null;
     73        public Object getTemplateValue(String name, boolean special) {
     74            if (special) {
     75                if ("localName".equals(name))
     76                    return "localName";
     77                else
     78                    return null;
     79            } else {
     80                if ("name".equals(name))
     81                    return "waypointName";
     82                else if ("number".equals(name))
     83                    return 10;
     84                else if ("special:key".equals(name))
     85                    return "specialKey";
     86                else
     87                    return null;
     88            }
    7189        }
    7290        @Override
     
    90108
    91109    @Test
     110    public void testFillingSearchExpression() throws Exception {
     111        TemplateParser parser = new TemplateParser("?{ admin_level = 2 'NUTS 1' | admin_level = 4 'NUTS 2' |  '{admin_level}'}");
     112        TemplateEntry templateEntry = parser.parse();
     113
     114        StringBuilder sb = new StringBuilder();
     115        Relation r = new Relation();
     116        r.put("admin_level", "2");
     117        templateEntry.appendText(sb, r);
     118        Assert.assertEquals("NUTS 1", sb.toString());
     119
     120        sb.setLength(0);
     121        r.put("admin_level", "5");
     122        templateEntry.appendText(sb, r);
     123        Assert.assertEquals("5", sb.toString());
     124    }
     125
     126    @Test
    92127    public void testPrintAll() throws Exception {
    93         TemplateParser parser = new TemplateParser("{*}");
     128        TemplateParser parser = new TemplateParser("{special:everything}");
    94129        TemplateEntry entry = parser.parse();
    95130        StringBuilder sb = new StringBuilder();
     
    107142    }
    108143
     144    @Test
     145    public void testSpecialVariable() throws Exception {
     146        TemplateParser parser = new TemplateParser("{name}u{special:localName}u{special:special:key}");
     147        TemplateEntry templateEntry = parser.parse();
     148
     149        StringBuilder sb = new StringBuilder();
     150        templateEntry.appendText(sb, dataProvider);
     151        Assert.assertEquals("waypointNameulocalNameuspecialKey", sb.toString());
     152
     153    }
     154
    109155
    110156}
Note: See TracChangeset for help on using the changeset viewer.