Revision 26252 branches/v2_0_0_prep/libraries/libFMap_dal/src-test/org/gvsig/fmap/dal/feature/BaseTestEditableFeatureStore.java
BaseTestEditableFeatureStore.java | ||
---|---|---|
60 | 60 |
|
61 | 61 |
public abstract NewFeatureStoreParameters getDefaultNewDataStoreParameters() |
62 | 62 |
throws DataException; |
63 |
|
|
63 |
|
|
64 | 64 |
public abstract boolean usesResources(); |
65 | 65 |
|
66 | 66 |
//================================================= |
... | ... | |
1133 | 1133 |
} |
1134 | 1134 |
|
1135 | 1135 |
set.dispose(); |
1136 |
|
|
1137 |
|
|
1138 |
|
|
1139 | 1136 |
|
1140 | 1137 |
|
1138 |
|
|
1139 |
|
|
1140 |
|
|
1141 | 1141 |
originalSet.dispose(); |
1142 | 1142 |
|
1143 | 1143 |
result.dispose(); |
... | ... | |
1151 | 1151 |
} |
1152 | 1152 |
|
1153 | 1153 |
} |
1154 |
|
|
1155 | 1154 |
|
1155 |
|
|
1156 | 1156 |
public void testResourceChangeNotification() { |
1157 | 1157 |
DataStoreParameters parameters = null; |
1158 | 1158 |
|
... | ... | |
1185 | 1185 |
updater.addUpdate(UpdateFeature.UPDATE_LAST_FEATURE, |
1186 | 1186 |
attr.getName(), getEvaluatorToLower(attr.getName())); |
1187 | 1187 |
|
1188 |
StoreObserverForNotify observer = new StoreObserverForNotify(result2,FeatureStoreNotification.RESOURCE_CHANGED);
|
|
1188 |
StoreObserverForNotify observer = new StoreObserverForNotify(result2,FeatureStoreNotification.RESOURCE_CHANGED); |
|
1189 | 1189 |
result2.addObserver(observer); |
1190 |
|
|
1190 |
|
|
1191 | 1191 |
result.edit(); |
1192 | 1192 |
updater.run(); |
1193 | 1193 |
while (updater.getCurrentStatus() < EditStore.STATUS_FINISHED_OK |
... | ... | |
1200 | 1200 |
fail(); |
1201 | 1201 |
} |
1202 | 1202 |
} |
1203 |
|
|
1203 |
|
|
1204 | 1204 |
result.finishEditing(); |
1205 | 1205 |
|
1206 | 1206 |
assertTrue(observer.notified()); |
1207 |
|
|
1207 |
|
|
1208 | 1208 |
result2.refresh(); |
1209 |
|
|
1209 |
|
|
1210 | 1210 |
FeatureSet set = result.getFeatureSet(); |
1211 | 1211 |
FeatureSet set2 = result2.getFeatureSet(); |
1212 |
|
|
1212 |
|
|
1213 | 1213 |
assertTrue(this.compareFeatureIterators(set.iterator(), set2.iterator())); |
1214 |
|
|
1214 |
|
|
1215 | 1215 |
set2.dispose(); |
1216 | 1216 |
set.dispose(); |
1217 |
|
|
1217 |
|
|
1218 | 1218 |
// TODO checks FeatureType change |
1219 |
|
|
1219 |
|
|
1220 | 1220 |
result2.dispose(); |
1221 | 1221 |
result.dispose(); |
1222 | 1222 |
this.clearCopy(store, newParams); |
... | ... | |
1231 | 1231 |
} |
1232 | 1232 |
|
1233 | 1233 |
public abstract class StoreObserver implements Observer{ |
1234 |
|
|
1234 |
|
|
1235 | 1235 |
public DataStore store = null; |
1236 |
|
|
1236 |
|
|
1237 | 1237 |
} |
1238 | 1238 |
|
1239 | 1239 |
public class StoreObserverForNotify implements Observer{ |
1240 |
|
|
1240 |
|
|
1241 | 1241 |
public DataStore store = null; |
1242 |
|
|
1242 |
|
|
1243 | 1243 |
public String notifyType = null; |
1244 |
|
|
1244 |
|
|
1245 | 1245 |
private boolean notifyRecived = false; |
1246 |
|
|
1246 |
|
|
1247 | 1247 |
public StoreObserverForNotify(DataStore store,String notifyType){ |
1248 | 1248 |
this.store = store; |
1249 | 1249 |
this.notifyType = notifyType; |
1250 | 1250 |
this.notifyRecived = false; |
1251 | 1251 |
} |
1252 |
|
|
1252 |
|
|
1253 | 1253 |
public boolean notified(){ |
1254 | 1254 |
return notifyRecived; |
1255 | 1255 |
} |
... | ... | |
1267 | 1267 |
notifyRecived = true; |
1268 | 1268 |
} |
1269 | 1269 |
} |
1270 |
|
|
1270 |
|
|
1271 | 1271 |
} |
1272 | 1272 |
|
1273 |
|
|
1273 |
public void testUpdateFeatureType() { |
|
1274 |
DataStoreParameters parameters = null; |
|
1275 |
|
|
1276 |
try { |
|
1277 |
parameters = getDefaultDataStoreParameters(); |
|
1278 |
|
|
1279 |
FeatureStore store = (FeatureStore) dataManager |
|
1280 |
.createStore(parameters); |
|
1281 |
|
|
1282 |
NewFeatureStoreParameters newParams = this |
|
1283 |
.getDefaultNewDataStoreParameters(); |
|
1284 |
try { |
|
1285 |
this.clearCopy(store, newParams); |
|
1286 |
} catch (RemoveException e) { |
|
1287 |
// Dp nothing |
|
1288 |
} |
|
1289 |
|
|
1290 |
FeatureStore result = this.getStoreCopy(store, newParams); |
|
1291 |
|
|
1292 |
result.edit(); |
|
1293 |
|
|
1294 |
|
|
1295 |
String[] orgAttNames = new String[result.getDefaultFeatureType() |
|
1296 |
.size()]; |
|
1297 |
|
|
1298 |
Iterator iter = result.getDefaultFeatureType().iterator(); |
|
1299 |
int i = 0; |
|
1300 |
while (iter.hasNext()) { |
|
1301 |
orgAttNames[i] = ((FeatureAttributeDescriptor) iter.next()) |
|
1302 |
.getName(); |
|
1303 |
i++; |
|
1304 |
} |
|
1305 |
|
|
1306 |
EditableFeatureType edFtype = result |
|
1307 |
.getDefaultFeatureType().getEditable(); |
|
1308 |
|
|
1309 |
edFtype.add("__ATTR1__", DataTypes.STRING).setSize(10) |
|
1310 |
.setDefaultValue("HOLA"); |
|
1311 |
|
|
1312 |
result.update(edFtype); |
|
1313 |
|
|
1314 |
assertEquals(store.getDefaultFeatureType().size() + 1, result |
|
1315 |
.getDefaultFeatureType().size()); |
|
1316 |
|
|
1317 |
testIterationFastAndStandart(result); |
|
1318 |
|
|
1319 |
FeatureSet orgSet = store.getFeatureSet(); |
|
1320 |
FeatureSet curSet = result.getFeatureSet(); |
|
1321 |
|
|
1322 |
assertEquals(orgSet.getDefaultFeatureType().size() + 1, curSet |
|
1323 |
.getDefaultFeatureType().size()); |
|
1324 |
|
|
1325 |
Iterator orgIter = orgSet.iterator(); |
|
1326 |
Iterator curIter = curSet.iterator(); |
|
1327 |
|
|
1328 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1329 |
|
|
1330 |
orgIter = orgSet.fastIterator(); |
|
1331 |
curIter = curSet.fastIterator(); |
|
1332 |
|
|
1333 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1334 |
|
|
1335 |
orgIter = orgSet.iterator(); |
|
1336 |
curIter = curSet.fastIterator(); |
|
1337 |
|
|
1338 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1339 |
|
|
1340 |
orgIter = orgSet.fastIterator(); |
|
1341 |
curIter = curSet.iterator(); |
|
1342 |
|
|
1343 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1344 |
|
|
1345 |
curIter = curSet.iterator(); |
|
1346 |
Feature feature; |
|
1347 |
while (curIter.hasNext()) { |
|
1348 |
feature = (Feature) curIter.next(); |
|
1349 |
assertEquals("HOLA", feature.get("__ATTR1__")); |
|
1350 |
} |
|
1351 |
curSet.dispose(); |
|
1352 |
|
|
1353 |
FeatureQuery query =result.createFeatureQuery(); |
|
1354 |
query.setAttributeNames(new String[] { "__ATTR1__" }); |
|
1355 |
curSet = result.getFeatureSet(query); |
|
1356 |
|
|
1357 |
assertEquals(1, curSet.getDefaultFeatureType().size()); |
|
1358 |
|
|
1359 |
assertEquals(orgSet.getSize(), curSet.getSize()); |
|
1360 |
curIter = curSet.iterator(); |
|
1361 |
while (curIter.hasNext()) { |
|
1362 |
feature = (Feature) curIter.next(); |
|
1363 |
assertEquals("HOLA", feature.get("__ATTR1__")); |
|
1364 |
} |
|
1365 |
curSet.dispose(); |
|
1366 |
|
|
1367 |
result.finishEditing(); |
|
1368 |
|
|
1369 |
testIterationFastAndStandart(result); |
|
1370 |
|
|
1371 |
assertEquals(store.getDefaultFeatureType().size() + 1, result |
|
1372 |
.getDefaultFeatureType().size()); |
|
1373 |
|
|
1374 |
orgSet = store.getFeatureSet(); |
|
1375 |
curSet = result.getFeatureSet(); |
|
1376 |
|
|
1377 |
assertEquals(orgSet.getDefaultFeatureType().size() + 1, curSet |
|
1378 |
.getDefaultFeatureType().size()); |
|
1379 |
|
|
1380 |
orgIter = orgSet.iterator(); |
|
1381 |
curIter = curSet.iterator(); |
|
1382 |
|
|
1383 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1384 |
|
|
1385 |
orgIter = orgSet.fastIterator(); |
|
1386 |
curIter = curSet.fastIterator(); |
|
1387 |
|
|
1388 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1389 |
|
|
1390 |
orgIter = orgSet.iterator(); |
|
1391 |
curIter = curSet.fastIterator(); |
|
1392 |
|
|
1393 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1394 |
|
|
1395 |
orgIter = orgSet.fastIterator(); |
|
1396 |
curIter = curSet.iterator(); |
|
1397 |
|
|
1398 |
assertTrue(compareFeatureIterators(orgIter, curIter, orgAttNames)); |
|
1399 |
|
|
1400 |
curIter = curSet.iterator(); |
|
1401 |
while (curIter.hasNext()) { |
|
1402 |
feature = (Feature) curIter.next(); |
|
1403 |
assertEquals("HOLA", feature.get("__ATTR1__")); |
|
1404 |
} |
|
1405 |
curSet.dispose(); |
|
1406 |
|
|
1407 |
query = result.createFeatureQuery(); |
|
1408 |
query.setAttributeNames(new String[] { "__ATTR1__" }); |
|
1409 |
curSet = result.getFeatureSet(query); |
|
1410 |
|
|
1411 |
assertEquals(1, curSet.getDefaultFeatureType().size()); |
|
1412 |
|
|
1413 |
assertEquals(orgSet.getSize(), curSet.getSize()); |
|
1414 |
curIter = curSet.iterator(); |
|
1415 |
while (curIter.hasNext()) { |
|
1416 |
feature = (Feature) curIter.next(); |
|
1417 |
assertEquals("HOLA", feature.get("__ATTR1__")); |
|
1418 |
} |
|
1419 |
curSet.dispose(); |
|
1420 |
|
|
1421 |
orgSet.dispose(); |
|
1422 |
result.dispose(); |
|
1423 |
this.clearCopy(store, newParams); |
|
1424 |
store.dispose(); |
|
1425 |
|
|
1426 |
} catch (DataException e3) { |
|
1427 |
e3.printStackTrace(); |
|
1428 |
fail(); |
|
1429 |
return; |
|
1430 |
} |
|
1431 |
|
|
1432 |
} |
|
1433 |
|
|
1274 | 1434 |
} |
Also available in: Unified diff