Revision 26252 branches/v2_0_0_prep/libraries/libFMap_dal/src-test/org/gvsig/fmap/dal/feature/BaseTestEditableFeatureStore.java

View differences:

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