Revision 45008 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.mdb/src/test/java/org/gvsig/fmap/dal/store/mdb/TestCreate.java
TestCreate.java | ||
---|---|---|
6 | 6 |
import java.util.List; |
7 | 7 |
import junit.framework.TestCase; |
8 | 8 |
import static junit.framework.TestCase.assertEquals; |
9 |
import org.apache.commons.codec.binary.Hex; |
|
9 | 10 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
10 | 11 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
11 | 12 |
import org.gvsig.expressionevaluator.GeometryExpressionBuilder; |
... | ... | |
25 | 26 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
26 | 27 |
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters; |
27 | 28 |
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer; |
29 |
import org.gvsig.fmap.geom.Geometry; |
|
28 | 30 |
import org.gvsig.tools.ToolsLocator; |
29 | 31 |
import org.gvsig.tools.dataTypes.DataType; |
30 | 32 |
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
... | ... | |
237 | 239 |
); |
238 | 240 |
assertEquals( |
239 | 241 |
String.format("Field %s type mismatch", sourceAttr.getName()), |
240 |
sourceAttr.getDataTypeName(),
|
|
242 |
ToolsLocator.getDataTypesManager().get(DataTypes.STRING).getName(),
|
|
241 | 243 |
targetAttr.getDataTypeName() |
242 | 244 |
); |
243 |
assertEquals( |
|
244 |
String.format("Field %s geometry type mismatch", sourceAttr.getName()), |
|
245 |
sourceAttr.getGeomType().getName(), |
|
246 |
targetAttr.getGeomType().getName() |
|
247 |
); |
|
248 |
assertEquals( |
|
249 |
String.format("Field %s geometry SRS mismatch", sourceAttr.getName()), |
|
250 |
sourceAttr.getSRS().toString(), |
|
251 |
targetAttr.getSRS().toString() |
|
252 |
); |
|
253 |
assertEquals( |
|
254 |
String.format("Field %s size mismatch", sourceAttr.getName()), |
|
255 |
sourceAttr.getSize(), |
|
256 |
targetAttr.getSize() |
|
257 |
); |
|
258 |
assertEquals( |
|
259 |
String.format("Field %s precision mismatch", sourceAttr.getName()), |
|
260 |
sourceAttr.getPrecision(), |
|
261 |
targetAttr.getPrecision() |
|
262 |
); |
|
245 |
// assertEquals(
|
|
246 |
// String.format("Field %s geometry type mismatch", sourceAttr.getName()),
|
|
247 |
// sourceAttr.getGeomType().getName(),
|
|
248 |
// targetAttr.getGeomType().getName()
|
|
249 |
// );
|
|
250 |
// assertEquals(
|
|
251 |
// String.format("Field %s geometry SRS mismatch", sourceAttr.getName()),
|
|
252 |
// sourceAttr.getSRS().toString(),
|
|
253 |
// targetAttr.getSRS().toString()
|
|
254 |
// );
|
|
255 |
// assertEquals(
|
|
256 |
// String.format("Field %s size mismatch", sourceAttr.getName()),
|
|
257 |
// sourceAttr.getSize(),
|
|
258 |
// targetAttr.getSize()
|
|
259 |
// );
|
|
260 |
// assertEquals(
|
|
261 |
// String.format("Field %s precision mismatch", sourceAttr.getName()),
|
|
262 |
// sourceAttr.getPrecision(),
|
|
263 |
// targetAttr.getPrecision()
|
|
264 |
// );
|
|
263 | 265 |
break; |
264 | 266 |
default: |
265 | 267 |
fail( |
... | ... | |
333 | 335 |
); |
334 | 336 |
break; |
335 | 337 |
case DataTypes.GEOMETRY: |
336 |
assertEquals( |
|
337 |
String.format("Feature %03d attribute %s", i, sourceAttr.getName()), |
|
338 |
sourceFeature.get(sourceAttr.getName()), |
|
339 |
targetFeature.get(sourceAttr.getName()) |
|
340 |
); |
|
338 |
Geometry sourceGeom = sourceFeature.getDefaultGeometry(); |
|
339 |
if (sourceGeom != null) { |
|
340 |
byte[] wkb = sourceGeom.convertToWKB(); |
|
341 |
String sourceGeomHex = Hex.encodeHexString(wkb); |
|
342 |
|
|
343 |
assertEquals( |
|
344 |
String.format("Feature %03d attribute %s", i, sourceAttr.getName()), |
|
345 |
sourceGeomHex, |
|
346 |
targetFeature.get(sourceAttr.getName()) |
|
347 |
); |
|
348 |
} else { |
|
349 |
assertEquals( |
|
350 |
String.format("Feature %03d attribute %s", i, sourceAttr.getName()), |
|
351 |
sourceGeom, |
|
352 |
targetFeature.get(sourceAttr.getName()) |
|
353 |
); |
|
354 |
} |
|
341 | 355 |
break; |
356 |
|
|
342 | 357 |
case DataTypes.LONG: |
343 | 358 |
Object expectedLong = sourceFeature.get(sourceAttr.getName()); |
344 | 359 |
if (expectedLong != null) { |
... | ... | |
355 | 370 |
); |
356 | 371 |
break; |
357 | 372 |
|
358 |
case DataTypes.FLOAT: |
|
373 |
case DataTypes.FLOAT: // Access float |
|
374 |
Object expectedFloat = sourceFeature.get(sourceAttr.getName()); |
|
375 |
if (expectedFloat != null) { |
|
376 |
expectedFloat = sourceFeature.get(sourceAttr.getName()); |
|
377 |
} |
|
378 |
Object targetFloat = targetFeature.get(sourceAttr.getName()); |
|
379 |
if (targetFloat!=null) { |
|
380 |
targetFloat = targetFeature.getFloat(sourceAttr.getName()); |
|
381 |
} |
|
382 |
assertEquals( |
|
383 |
String.format("Feature %03d attribute %s", i, sourceAttr.getName()), |
|
384 |
expectedFloat, |
|
385 |
targetFloat |
|
386 |
); |
|
387 |
break; |
|
388 |
case DataTypes.DECIMAL: |
|
389 |
if (sourceAttr.getPrecision() == 19 && sourceAttr.getScale() == 0) { // en acces es un decimal, lo tratamos como long |
|
390 |
Object expectedDecimalAsLong = sourceFeature.get(sourceAttr.getName()); |
|
391 |
if (expectedDecimalAsLong != null) { |
|
392 |
expectedDecimalAsLong = sourceFeature.getLong(sourceAttr.getName()); |
|
393 |
} |
|
394 |
Object targetDecimalasLong= targetFeature.get(sourceAttr.getName()); |
|
395 |
if (targetDecimalasLong!=null) { |
|
396 |
targetDecimalasLong = targetFeature.getLong(sourceAttr.getName()); |
|
397 |
} |
|
398 |
assertEquals( |
|
399 |
String.format("Feature %03d attribute %s", i, sourceAttr.getName()), |
|
400 |
expectedDecimalAsLong, |
|
401 |
targetDecimalasLong |
|
402 |
); |
|
403 |
break; |
|
404 |
} |
|
359 | 405 |
case DataTypes.DOUBLE: |
360 | 406 |
default: |
361 | 407 |
Object sourceValue = sourceFeature.get(sourceAttr.getName()); |
Also available in: Unified diff