svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.xml2db / org.gvsig.xml2db.lib / org.gvsig.xml2db.lib.impl / src / test / java / org / gvsig / xml2db / lib / impl / TestStructureExtractor.java @ 47283
History | View | Annotate | Download (7.81 KB)
1 |
package org.gvsig.xml2db.lib.impl; |
---|---|
2 |
|
3 |
import java.io.InputStream; |
4 |
import java.util.ArrayList; |
5 |
import java.util.List; |
6 |
import org.apache.commons.lang3.tuple.ImmutablePair; |
7 |
import org.apache.commons.lang3.tuple.Pair; |
8 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
9 |
import org.gvsig.fmap.dal.feature.FeatureType; |
10 |
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase; |
11 |
import org.gvsig.tools.util.ListBuilder; |
12 |
import org.gvsig.xml2db.lib.api.Xml2dbManager; |
13 |
import org.gvsig.xml2db.lib.api.xmlinfo.XMLInfo; |
14 |
import org.gvsig.xml2db.lib.api.xmlinfo.XMLTableInfo; |
15 |
import org.slf4j.Logger; |
16 |
import org.slf4j.LoggerFactory; |
17 |
|
18 |
|
19 |
@SuppressWarnings("UseSpecificCatch") |
20 |
public class TestStructureExtractor extends AbstractLibraryAutoInitTestCase { |
21 |
|
22 |
private static final Logger LOGGER = LoggerFactory.getLogger(TestStructureExtractor.class); |
23 |
|
24 |
public TestStructureExtractor(String testName) { |
25 |
super(testName);
|
26 |
} |
27 |
|
28 |
@Override
|
29 |
protected void doSetUp() throws Exception { |
30 |
|
31 |
} |
32 |
|
33 |
public void testExtractorDeclaracion() throws Exception { |
34 |
try {
|
35 |
Xml2dbManager manager = new DefaultXml2dbManager();
|
36 |
|
37 |
InputStream xml = this.getClass().getResourceAsStream("Declaracion4.xml"); |
38 |
XMLInfo xmlinfo = manager.extractStructure(xml, null, null, null); |
39 |
|
40 |
List<FeatureType> ftypes = new ArrayList<>(); |
41 |
for (XMLTableInfo tableInfo : xmlinfo) {
|
42 |
ftypes.add(tableInfo.getFeatureType()); |
43 |
} |
44 |
ftypes.sort((FeatureType o1, FeatureType o2) -> |
45 |
o1.getTags().getString("xml2db.tablename","") |
46 |
.compareTo(o2.getTags().getString("xml2db.tablename",""))); |
47 |
|
48 |
List<Pair<String,List<String>>> expecteds = ListBuilder.create( |
49 |
new ImmutablePair(
|
50 |
"DECLARACION",
|
51 |
ListBuilder.create( |
52 |
"$ID_DECLARACION",
|
53 |
"DECLARANTE",
|
54 |
"LINEA_DECLARACION",
|
55 |
"METADATA"
|
56 |
) |
57 |
), |
58 |
new ImmutablePair("LINEA_DECLARACION", |
59 |
ListBuilder.create( |
60 |
"$ID_DECLARACION",
|
61 |
"$ID_LINEA_DECLARACION",
|
62 |
"AGREGADO",
|
63 |
"CULTIVO",
|
64 |
"DN_SURFACE",
|
65 |
"FC_ALGARROBOS",
|
66 |
"FC_ALMENDROS",
|
67 |
"FC_AVELLANOS",
|
68 |
"FC_NOGALES",
|
69 |
"FC_PISTACHOS",
|
70 |
"FC_TOTAL",
|
71 |
"MUN_CAT",
|
72 |
"MUN_INE",
|
73 |
"PARCELA",
|
74 |
"PARCELA_AGRICOLA",
|
75 |
"POLIGONO",
|
76 |
"PROV",
|
77 |
"RECINTO",
|
78 |
"SUPERFICIE_DECLARADA",
|
79 |
"WKT",
|
80 |
"ZONA"
|
81 |
) |
82 |
), |
83 |
new ImmutablePair("METADATA", |
84 |
ListBuilder.create( |
85 |
"$ID_DECLARACION",
|
86 |
"$ID_METADATA",
|
87 |
"SRID",
|
88 |
"VERSION"
|
89 |
) |
90 |
) |
91 |
); |
92 |
for (int i = 0; i < ftypes.size(); i++) { |
93 |
FeatureType ftype = ftypes.get(i); |
94 |
String tableName = ftype.getTags().getString("xml2db.tablename",""); |
95 |
System.out.println(tableName);
|
96 |
assertEquals(expecteds.get(i).getLeft(), tableName); |
97 |
for (int j = 0; j < ftype.size(); j++) { |
98 |
FeatureAttributeDescriptor attr = ftype.get(j); |
99 |
System.out.println(" "+attr.getName()); |
100 |
assertEquals(expecteds.get(i).getRight().get(j), attr.getName()); |
101 |
} |
102 |
System.out.println(ftype.toJson().toString());
|
103 |
} |
104 |
} catch(Throwable t) { |
105 |
LOGGER.warn("",t);
|
106 |
throw t;
|
107 |
} |
108 |
} |
109 |
|
110 |
public void testExtractorR10graf() throws Exception { |
111 |
try {
|
112 |
Xml2dbManager manager = new DefaultXml2dbManager();
|
113 |
|
114 |
InputStream xml = this.getClass().getResourceAsStream("r10graf.xml"); |
115 |
XMLInfo xmlinfo = manager.extractStructure(xml, null, null, null); |
116 |
|
117 |
List<FeatureType> ftypes = new ArrayList<>(); |
118 |
for (XMLTableInfo tableInfo : xmlinfo) {
|
119 |
ftypes.add(tableInfo.getFeatureType()); |
120 |
} |
121 |
ftypes.sort((FeatureType o1, FeatureType o2) -> |
122 |
o1.getTags().getString("xml2db.tablename","") |
123 |
.compareTo(o2.getTags().getString("xml2db.tablename",""))); |
124 |
|
125 |
|
126 |
List<Pair<String,List<String>>> expecteds = ListBuilder.create( |
127 |
new ImmutablePair(
|
128 |
"expediente",
|
129 |
ListBuilder.create( |
130 |
"$ID_expediente",
|
131 |
"$ID_r10_graf",
|
132 |
"num_expediente",
|
133 |
"parcelas"
|
134 |
) |
135 |
), |
136 |
new ImmutablePair("linea", |
137 |
ListBuilder.create( |
138 |
"$ID_expediente",
|
139 |
"$ID_linea",
|
140 |
"$ID_parcela",
|
141 |
"$ID_r10_graf",
|
142 |
"ag",
|
143 |
"lin_codigo",
|
144 |
"mu",
|
145 |
"pa",
|
146 |
"po",
|
147 |
"pr",
|
148 |
"re",
|
149 |
"wkt",
|
150 |
"zo"
|
151 |
) |
152 |
), |
153 |
new ImmutablePair("parcela", |
154 |
ListBuilder.create( |
155 |
"$ID_expediente",
|
156 |
"$ID_parcela",
|
157 |
"$ID_r10_graf",
|
158 |
"num_parcela",
|
159 |
"lineas"
|
160 |
) |
161 |
), |
162 |
new ImmutablePair("r10_graf", |
163 |
ListBuilder.create( |
164 |
"$ID_r10_graf",
|
165 |
"ca",
|
166 |
"campana",
|
167 |
"srid",
|
168 |
"expedientes"
|
169 |
) |
170 |
) |
171 |
); |
172 |
for (int i = 0; i < ftypes.size(); i++) { |
173 |
FeatureType ftype = ftypes.get(i); |
174 |
String tableName = ftype.getTags().getString("xml2db.tablename",""); |
175 |
System.out.println("\""+tableName+"\""); |
176 |
assertEquals(expecteds.get(i).getLeft(), tableName); |
177 |
for (int j = 0; j < ftype.size(); j++) { |
178 |
FeatureAttributeDescriptor attr = ftype.get(j); |
179 |
System.out.println(" \""+attr.getName()+"\""); |
180 |
assertEquals(expecteds.get(i).getRight().get(j), attr.getName()); |
181 |
} |
182 |
// System.out.println(ftype.toJson().toString());
|
183 |
} |
184 |
} catch(Throwable t) { |
185 |
LOGGER.warn("Test testExtractorR10graf failed",t);
|
186 |
throw t;
|
187 |
} |
188 |
} |
189 |
|
190 |
public void testExtractorArena2() throws Exception { |
191 |
try {
|
192 |
Xml2dbManager manager = new DefaultXml2dbManager();
|
193 |
|
194 |
InputStream xml = this.getClass().getResourceAsStream("victimas.xml"); |
195 |
XMLInfo xmlinfo = manager.extractStructure(xml, null, null, null); |
196 |
|
197 |
} catch(Throwable t) { |
198 |
LOGGER.warn("Test testExtractorArena2 failed",t);
|
199 |
throw t;
|
200 |
} |
201 |
} |
202 |
} |