Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / test / java / org / gvsig / expresionevaluator / impl / TestSymbolTable.java @ 43983

History | View | Annotate | Download (3.65 KB)

1 43983 jjdelcerro
package org.gvsig.expresionevaluator.impl;
2
3
import junit.framework.TestCase;
4
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
5
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
6
import org.gvsig.expressionevaluator.MutableSymbolTable;
7
import org.gvsig.expressionevaluator.SymbolTable;
8
import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
9
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
10
11
12
public class TestSymbolTable extends TestCase {
13
14
    public TestSymbolTable(String testName) {
15
        super(testName);
16
    }
17
18
    @Override
19
    protected void setUp() throws Exception {
20
        super.setUp();
21
        new DefaultLibrariesInitializer().fullInitialize();
22
    }
23
24
    @Override
25
    protected void tearDown() throws Exception {
26
        super.tearDown();
27
    }
28
29
    // TODO add test methods here. The name must begin with 'test'. For example:
30
    // public void testHello() {}
31
32
33
    private MutableSymbolTable createMutableSymbolTable() {
34
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
35
        MutableSymbolTable t = manager.createSymbolTable();
36
        return  t;
37
    }
38
39
    private SymbolTable createSymbolTable() {
40
        SymbolTable t = new AbstractSymbolTable() {
41
        };
42
        return t;
43
    }
44
45
    public void testGetter() {
46
        SymbolTable symbolTable = createSymbolTable();
47
48
        assertNull(symbolTable.value("number"));
49
        assertFalse(symbolTable.exists("number"));
50
51
        assertNull(symbolTable.function("abs"));
52
53
        assertEquals(0, symbolTable.variables().size());
54
        assertEquals(0, symbolTable.functions().size());
55
        assertEquals(0, symbolTable.scripts().size());
56
    }
57
58
    public void testGetter2() {
59
        MutableSymbolTable symbolTable = createMutableSymbolTable();
60
61
        assertNull(symbolTable.value("number"));
62
        assertFalse(symbolTable.exists("number"));
63
64
        assertNotNull(symbolTable.function("abs"));
65
66
        assertEquals(0, symbolTable.variables().size());
67
        assertFalse(symbolTable.functions().isEmpty());
68
        assertEquals(0, symbolTable.scripts().size());
69
    }
70
71
    public void testSetter1() {
72
        MutableSymbolTable symbolTable = createMutableSymbolTable();
73
74
        symbolTable.setVar("number", 10);
75
76
        assertEquals(10, symbolTable.value("number"));
77
        assertTrue(symbolTable.exists("number"));
78
79
        assertEquals(1, symbolTable.variables().size());
80
        assertFalse(symbolTable.functions().isEmpty());
81
        assertEquals(0, symbolTable.scripts().size());
82
    }
83
84
    public void testDelegated1() {
85
86
        MutableSymbolTable symbolTable1 = createMutableSymbolTable();
87
88
        MutableSymbolTable symbolTable2 = createMutableSymbolTable();
89
        symbolTable2.setVar("number", 10);
90
91
        symbolTable1.addSymbolTable(symbolTable2);
92
        assertEquals(10, symbolTable1.value("number"));
93
        assertTrue(symbolTable1.exists("number"));
94
        assertNotNull(symbolTable1.function("abs"));
95
96
        assertEquals(symbolTable2.functions().size(), symbolTable1.functions().size());
97
    }
98
99
    public void testDelegated2() {
100
101
        SymbolTable symbolTable1 = createSymbolTable();
102
103
        MutableSymbolTable symbolTable2 = createMutableSymbolTable();
104
        symbolTable2.setVar("number", 10);
105
106
        symbolTable1.addSymbolTable(symbolTable2);
107
        assertEquals(10, symbolTable1.value("number"));
108
        assertTrue(symbolTable1.exists("number"));
109
        assertNotNull(symbolTable1.function("abs"));
110
111
        assertEquals(symbolTable2.functions().size(), symbolTable1.functions().size());
112
    }
113
114
}