Statistics
| Revision:

root / trunk / libraries / libInternationalization / src-utils-test / org / gvsig / i18n / utils / TestProperties.java @ 13424

History | View | Annotate | Download (5.89 KB)

1
package org.gvsig.i18n.utils;
2

    
3
import java.io.File;
4
import java.io.FileInputStream;
5
import java.io.FileNotFoundException;
6
import java.io.FileOutputStream;
7
import java.io.IOException;
8
import java.io.InputStream;
9
import java.io.OutputStream;
10

    
11
import junit.framework.TestCase;
12

    
13
/**
14
 * @author cesar
15
 *
16
 */
17
public class TestProperties extends TestCase {
18
        static final String fileName = "TestProperties-file";
19
        InputStream is;
20
        OutputStream os;
21
        
22
        public void initOutputStream() {
23
                try {
24
                        os = new FileOutputStream(fileName);
25
                } catch (FileNotFoundException e) {
26
                        TestCase.fail(e.getLocalizedMessage());
27
                }
28
        }
29
        
30
        public void discardOutputStream() {
31
                try {
32
                        os.close();
33
                        File file = new File(fileName);
34
                        file.delete();
35
                } catch (IOException e) {
36
                        TestCase.fail(e.getLocalizedMessage());
37
                }
38
        }
39
        
40
        public void initInputStream() {
41
                try {
42
                        is = new FileInputStream(fileName);
43
                } catch (FileNotFoundException e) {
44
                        TestCase.fail(e.getLocalizedMessage());
45
                }
46
        }
47
        
48
        public void discardInputStream() {
49
                try {
50
                        is.close();
51
                } catch (IOException e) {
52
                        TestCase.fail(e.getLocalizedMessage());
53
                }
54
        }
55
        
56
        public void testOrderedPropertiesBasic() {
57
                // write file
58
                OrderedProperties props1 = new OrderedProperties();
59
                props1.setProperty("prueba", "hola");
60
                props1.setProperty("prueba2", "holas");
61
                props1.setProperty("abrir", "cerrar");
62
                props1.setProperty("puerta", "hembrilla");
63
                props1.setProperty("12libros", "quijote");
64
                props1.setProperty("ca?uto", "\u20acuropeo");
65
                props1.setProperty("confli=cto", "amigo");
66
                props1.setProperty("  confli =  :cto mayor ", " peque?o conflicto");
67
                initOutputStream();
68
                try {
69
                        props1.store(os, "header");
70
                } catch (IOException e) {
71
                        TestCase.fail(e.getLocalizedMessage());
72
                }
73
                
74
                // read file
75
                OrderedProperties props2 = new OrderedProperties();
76
                initInputStream();
77
                try {
78
                        props2.load(is);
79
                } catch (IOException e) {
80
                        TestCase.fail(e.getLocalizedMessage());
81
                }
82
                TestCase.assertEquals("\u20acuropeo", props2.getProperty("ca?uto"));
83
                TestCase.assertEquals("amigo", props2.getProperty("confli=cto"));
84
                TestCase.assertEquals(" peque?o conflicto", props2.getProperty("  confli =  :cto mayor "));
85
                TestCase.assertEquals("hola", props2.getProperty("prueba"));
86
                TestCase.assertEquals("holas", props2.getProperty("prueba2"));
87
                TestCase.assertEquals("cerrar", props2.getProperty("abrir"));
88
                TestCase.assertEquals("hembrilla", props2.getProperty("puerta"));
89
                TestCase.assertEquals("quijote", props2.getProperty("12libros"));
90
                discardInputStream();
91
                discardOutputStream();
92
        }
93

    
94
        
95
        public void testOrderedProperties() {
96
                // write file
97
                OrderedProperties props1 = new OrderedProperties();
98
                props1.setProperty("prueba", "hola");
99
                props1.setProperty("prueba2", "holas");
100
                props1.setProperty("ca?uto", "\u20acuropeo");
101
                props1.setProperty("confli=cto", "amigo");
102
                props1.setProperty("  conflis =  :cto mayor ", " peque?o conflicto");
103
                props1.setProperty("abrir", "cerrar");
104
                props1.setProperty("puerta", "hembrilla");
105
                props1.setProperty("12libros", "quijote");
106
                initOutputStream();
107
                try {
108
                        props1.store(os, "header", "8859_15");
109
                } catch (IOException e) {
110
                        TestCase.fail(e.getLocalizedMessage());
111
                }
112
                
113
                // read file
114
                OrderedProperties props2 = new OrderedProperties();
115
                initInputStream();
116
                try {
117
                        props2.load(is, "8859_15");
118
                } catch (IOException e) {
119
                        TestCase.fail(e.getLocalizedMessage());
120
                }
121
                // estos deber?an salir igual
122
                TestCase.assertEquals("hola", props2.getProperty("prueba"));
123
                TestCase.assertEquals("holas", props2.getProperty("prueba2"));
124
                TestCase.assertEquals("cerrar", props2.getProperty("abrir"));
125
                TestCase.assertEquals("hembrilla", props2.getProperty("puerta"));
126
                TestCase.assertEquals("quijote", props2.getProperty("12libros"));
127
                // con estos en cambio no obtenemos los mismos valores que escribimos anteriormente. Es normal, porque incluimos
128
                // caracteres especiales como ":" y "=". Para manejarlos correctamente necesitamos usas los m?todos load/store
129
                // sin encoding, los cuales s? escapan los caracteres especiales
130
                TestCase.assertEquals("\u20acuropeo", props2.getProperty("ca?uto"));
131
                TestCase.assertEquals("cto=amigo", props2.getProperty("confli"));
132
                TestCase.assertEquals(":cto mayor = peque?o conflicto", props2.getProperty("conflis"));
133

    
134
                discardInputStream();
135
                discardOutputStream();
136
                
137
                // write file
138
                props1 = new OrderedProperties();
139
                props1.setProperty("Prueba", "hola");
140
                props1.setProperty("prueba2", "holas");
141
                props1.setProperty("ca?uto", "\u20acuropeo");
142
                props1.setProperty("confli=cto", "amigo");
143
                props1.setProperty("  conflis =  :cto mayor ", " peque?o conflicto");
144
                props1.setProperty("abrir", "cerrar");
145
                props1.setProperty("puerta", "hembrilla");
146
                props1.setProperty("12libros", "quijote");
147
                initOutputStream();
148
                try {
149
                        props1.store(os, "header", "UTF8");
150
                } catch (IOException e) {
151
                        TestCase.fail(e.getLocalizedMessage());
152
                }
153
                
154
                // read file
155
                props2 = new OrderedProperties();
156
                initInputStream();
157
                try {
158
                        props2.load(is, "UTF8");
159
                } catch (IOException e) {
160
                        TestCase.fail(e.getLocalizedMessage());
161
                }
162
                // estos deber?an salir igual
163
                TestCase.assertEquals("hola", props2.getProperty("Prueba"));
164
                TestCase.assertEquals("holas", props2.getProperty("prueba2"));
165
                TestCase.assertEquals("cerrar", props2.getProperty("abrir"));
166
                TestCase.assertEquals("hembrilla", props2.getProperty("puerta"));
167
                TestCase.assertEquals("quijote", props2.getProperty("12libros"));
168
                // con estos en cambio no obtenemos los mismos valores que escribimos anteriormente. Es normal, porque incluimos
169
                // caracteres especiales como ":" y "=". Para manejarlos correctamente necesitamos usas los m?todos load/store
170
                // sin encoding, los cuales s? escapan los caracteres especiales
171
                TestCase.assertEquals("\u20acuropeo", props2.getProperty("ca?uto"));
172
                TestCase.assertEquals("cto=amigo", props2.getProperty("confli"));
173
                TestCase.assertEquals(":cto mayor = peque?o conflicto", props2.getProperty("conflis"));
174

    
175
                discardInputStream();
176
                discardOutputStream();
177
        }
178
        
179
}