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

View differences:

BaseTestFeatureStore.java
654 654

  
655 655
	}
656 656

  
657
	public void testSimpleIteration(DataStoreParameters parameters) {
657
	public void testSimpleIteration(DataStoreParameters parameters)
658
			throws Exception {
658 659
		FeatureStore store = null;
659
		try {
660
			store = (FeatureStore) dataManager.createStore(parameters);
660
		store = (FeatureStore) dataManager.createStore(parameters);
661 661

  
662
			this.testSimpleIteration(store);
662
		this.testSimpleIteration(store);
663 663

  
664
			store.dispose();
664
		store.dispose();
665 665

  
666
		} catch (DataException e3) {
667
			e3.printStackTrace();
668
			fail();
669
			return;
670
		}
671 666
	}
672 667

  
673
	public void testIterationFastAndStandart(DataStoreParameters parameters) {
668
	public void testIterationFastAndStandart(DataStoreParameters parameters)
669
			throws Exception {
674 670
		FeatureStore store = null;
675
		try {
676
			store = (FeatureStore) dataManager.createStore(parameters);
671
		store = (FeatureStore) dataManager.createStore(parameters);
677 672

  
678
			this.testIterationFastAndStandart(store);
673
		this.testIterationFastAndStandart(store);
679 674

  
680
			store.dispose();
675
		store.dispose();
681 676

  
682
		} catch (DataException e3) {
683
			e3.printStackTrace();
684
			fail();
685
			return;
686
		}
687 677
	}
688 678

  
689 679
	/**
690 680
	 *
691 681
	 * @param count
692 682
	 *            if (< 0) list.size() >= 1 else list.size() == count
683
	 * @throws Exception
693 684
	 */
694
	public void testExplorerList(int count) {
685
	public void testExplorerList(int count) throws Exception {
695 686
		FeatureStore store = null;
696
		try {
697
			store = (FeatureStore) dataManager.createStore(this
698
					.getDefaultDataStoreParameters());
699
		} catch (Exception e) {
700
			e.printStackTrace();
701
			fail();
702
			return;
703
		}
687
		store = (FeatureStore) dataManager.createStore(this
688
				.getDefaultDataStoreParameters());
704 689

  
705 690
		DataServerExplorer explorer;
706
		try {
707
			explorer = store.getExplorer();
708
		} catch (DataException e) {
709
			e.printStackTrace();
710
			fail();
711
			return;
712
		}
691
		explorer = store.getExplorer();
713 692

  
714 693
		if (count < 0) {
715
			try {
716
				assertTrue(explorer.list().size() >= 1);
717
			} catch (DataException e) {
718
				e.printStackTrace();
719
				fail();
720
				return;
721
			}
722

  
694
			assertTrue(explorer.list().size() >= 1);
723 695
		} else {
724
			try {
725
				assertTrue(explorer.list().size() == count);
726
			} catch (DataException e) {
727
				e.printStackTrace();
728
				fail();
729
				return;
730
			}
696
			assertTrue(explorer.list().size() == count);
731 697
		}
732 698

  
733
		try {
734
			store.dispose();
735
		} catch (DataException e) {
736
			e.printStackTrace();
737
			fail();
738
			return;
739
		}
699
		store.dispose();
740 700

  
741
		try {
742
			explorer.dispose();
743
		} catch (DataException e) {
744
			e.printStackTrace();
745
			fail();
746
			return;
747
		}
701
		explorer.dispose();
748 702
	}
749 703

  
750 704
	//=================================================
......
753 707

  
754 708

  
755 709

  
756
	public void testIterationFastAndStandart() {
757
		try {
758
			this.testIterationFastAndStandart(this
759
					.getDefaultDataStoreParameters());
760
		} catch (DataException e) {
761
			e.printStackTrace();
762
			fail();
763
		}
710
	public void testIterationFastAndStandart() throws Exception {
711
		this.testIterationFastAndStandart(this.getDefaultDataStoreParameters());
764 712
	}
765 713

  
766
	public void testSimpleIteration() {
767
		try {
768
			this.testSimpleIteration(this.getDefaultDataStoreParameters());
769
		} catch (DataException e) {
770
			e.printStackTrace();
771
			fail();
772
		}
714
	public void testSimpleIteration() throws Exception {
715
		this.testSimpleIteration(this.getDefaultDataStoreParameters());
773 716
	}
774 717

  
775
	public void testInitializeStore() {
776
		try {
777
			FeatureStore store = (FeatureStore) dataManager.createStore(this
778
					.getDefaultDataStoreParameters());
779
			store.dispose();
780
		} catch (DataException e) {
781
			e.printStackTrace();
782
			fail();
783
		}
718
	public void testInitializeStore() throws Exception {
719
		FeatureStore store = (FeatureStore) dataManager.createStore(this
720
				.getDefaultDataStoreParameters());
721
		store.dispose();
784 722
	}
785 723

  
786 724

  
787
	public void testExplorer() {
725
	public void testExplorer() throws Exception {
788 726
		if (!this.hasExplorer()) {
789 727
			return;
790 728
		}
......
792 730

  
793 731
	}
794 732

  
795
	public void testSelection() {
796
		try {
797
			DataStoreParameters parameters = this
798
					.getDefaultDataStoreParameters();
733
	public void testSelection() throws Exception {
734
		DataStoreParameters parameters = this.getDefaultDataStoreParameters();
799 735

  
800
			FeatureStore store = (FeatureStore) dataManager
801
					.createStore(parameters);
802
			FeatureSet set = store.getFeatureSet();
736
		FeatureStore store = (FeatureStore) dataManager.createStore(parameters);
737
		FeatureSet set = store.getFeatureSet();
803 738

  
804
			assertTrue(store.getFeatureSelection().isEmpty());
805
			store.setSelection(set);
806
			assertFalse(store.getFeatureSelection().isEmpty());
739
		assertTrue(store.getFeatureSelection().isEmpty());
740
		store.setSelection(set);
741
		assertFalse(store.getFeatureSelection().isEmpty());
807 742

  
808
			assertEquals(set.getSize(), store.getFeatureSelection().getSize());
743
		assertEquals(set.getSize(), store.getFeatureSelection().getSize());
809 744

  
810
			DisposableIterator iter = set.iterator();
811
			while (iter.hasNext()) {
812
				assertTrue(store.getFeatureSelection().isSelected(
813
						(Feature) iter.next()));
814
			}
815
			iter.dispose();
745
		DisposableIterator iter = set.iterator();
746
		while (iter.hasNext()) {
747
			assertTrue(store.getFeatureSelection().isSelected(
748
					(Feature) iter.next()));
749
		}
750
		iter.dispose();
816 751

  
817
			store.getFeatureSelection().reverse();
818
			assertTrue(store.getFeatureSelection().isEmpty());
819
			assertEquals(0, store.getFeatureSelection().getSize());
820
			store.getFeatureSelection().reverse();
821
			assertEquals(set.getSize(), store.getFeatureSelection().getSize());
822
			assertFalse(store.getFeatureSelection().isEmpty());
752
		store.getFeatureSelection().reverse();
753
		assertTrue(store.getFeatureSelection().isEmpty());
754
		assertEquals(0, store.getFeatureSelection().getSize());
755
		store.getFeatureSelection().reverse();
756
		assertEquals(set.getSize(), store.getFeatureSelection().getSize());
757
		assertFalse(store.getFeatureSelection().isEmpty());
823 758

  
824
			set.dispose();
759
		set.dispose();
825 760

  
826
		} catch (DataException e3) {
827
			e3.printStackTrace();
828
			fail();
829
			return;
830
		}
831

  
832 761
	}
833 762

  
834
	public void testCustomFTypeSet() {
835
		try {
836
			DataStoreParameters dbfParameters = this
837
					.getDefaultDataStoreParameters();
763
	public void testCustomFTypeSet() throws Exception {
764
		DataStoreParameters dbfParameters = this
765
				.getDefaultDataStoreParameters();
838 766

  
839
			FeatureStore store = (FeatureStore) dataManager
840
					.createStore(dbfParameters);
767
		FeatureStore store = (FeatureStore) dataManager
768
				.createStore(dbfParameters);
841 769

  
842
			testCustomFTypeSet(store);
770
		testCustomFTypeSet(store);
843 771

  
844
			store.dispose();
845
		} catch (DataException e3) {
846
			e3.printStackTrace();
847
			fail();
848
			return;
849
		}
772
		store.dispose();
850 773
	}
851 774

  
852 775
	public void testCustomFTypeSet(FeatureStore store) {
......
932 855
		}
933 856
	}
934 857

  
935
	public void testPersistence() {
858
	public void testPersistence() throws Exception {
936 859
		if ((FeatureStore) ToolsLocator.getPersistenceManager() == null) {
937 860
			fail("Default Persistence Manager not register");
938 861
		}
939
		try {
940
			DataStoreParameters params = this.getDefaultDataStoreParameters();
862
		DataStoreParameters params = this.getDefaultDataStoreParameters();
941 863

  
942 864

  
943
			FeatureStore store = (FeatureStore) dataManager
944
					.createStore(params);
865
		FeatureStore store = (FeatureStore) dataManager.createStore(params);
945 866

  
946
			testSimpleIteration(store);
867
		testSimpleIteration(store);
947 868

  
948
			 PersistentState state = store.getState();
869
		PersistentState state = store.getState();
949 870

  
950
			FeatureStore store2 = (FeatureStore) ToolsLocator
951
					.getPersistenceManager().create(state);
871
		FeatureStore store2 = (FeatureStore) ToolsLocator
872
				.getPersistenceManager().create(state);
952 873

  
953
			testSimpleIteration(store2);
874
		testSimpleIteration(store2);
954 875

  
955
			assertTrue(compareStores(store, store2));
876
		assertTrue(compareStores(store, store2));
956 877

  
957
			//TODO Compare states
958
			//			XMLEntityState state2 = (XMLEntityState) store.getState();
959
			//
960
			//			assertEquals(state.getXMLEntity().toString(), state2.getXMLEntity()
961
			//					.toString());
962
			//
963
			store.dispose();
964
			store2.dispose();
878
		// TODO Compare states
879
		// XMLEntityState state2 = (XMLEntityState) store.getState();
880
		//
881
		// assertEquals(state.getXMLEntity().toString(), state2.getXMLEntity()
882
		// .toString());
883
		//
884
		store.dispose();
885
		store2.dispose();
965 886

  
966
		} catch (DataException e3) {
967
			e3.printStackTrace();
968
			fail();
969
			return;
970
		} catch (PersistenceException e) {
971
			e.printStackTrace();
972
			fail();
973
			return;
974
		}
975 887

  
976 888
	}
977 889

  
978 890

  
979
	public void testShort() {
980
		try {
891
	public void testShort() throws Exception {
892
		DataStoreParameters dbfParameters = this
893
				.getDefaultDataStoreParameters();
981 894

  
982
			DataStoreParameters dbfParameters = this
983
					.getDefaultDataStoreParameters();
895
		FeatureStore store = (FeatureStore) dataManager
896
				.createStore(dbfParameters);
984 897

  
985
			FeatureStore store = (FeatureStore) dataManager
986
					.createStore(dbfParameters);
898
		testShort(store);
987 899

  
988
			testShort(store);
900
		store.dispose();
989 901

  
990
			store.dispose();
991

  
992
		} catch (DataException e3) {
993
			e3.printStackTrace();
994
			fail();
995
			return;
996
		}
997

  
998

  
999 902
	}
1000 903

  
1001 904
	public void testShort(FeatureStore store) {
......
1180 1083
	}
1181 1084

  
1182 1085

  
1183
	public void testTransformsData() {
1184
		try {
1185
			DataStoreParameters dbfParameters = this
1186
					.getDefaultDataStoreParameters();
1086
	public void testTransformsData() throws Exception {
1087
		DataStoreParameters dbfParameters = this
1088
				.getDefaultDataStoreParameters();
1187 1089

  
1188
			FeatureStore store = (FeatureStore) dataManager
1189
					.createStore(dbfParameters);
1090
		FeatureStore store = (FeatureStore) dataManager
1091
				.createStore(dbfParameters);
1190 1092

  
1191
			FeatureStore store1 = (FeatureStore) dataManager
1192
					.createStore(dbfParameters);
1093
		FeatureStore store1 = (FeatureStore) dataManager
1094
				.createStore(dbfParameters);
1193 1095

  
1194
			FeatureStoreTransform transform = new StringsToLowerTransform();
1195
			transform.setFeatureStore(store);
1096
		FeatureStoreTransform transform = new StringsToLowerTransform();
1097
		transform.setFeatureStore(store);
1196 1098

  
1197
			store.getTransforms().add(transform);
1099
		store.getTransforms().add(transform);
1198 1100

  
1199
			FeatureSet set, set1;
1200
			DisposableIterator iter, iter1;
1201
			Iterator iterAttr;
1202
			FeatureAttributeDescriptor attr;
1203
			Feature feature, feature1;
1204
			int i, ntimes;
1205
			Object v1,v2;
1101
		FeatureSet set, set1;
1102
		DisposableIterator iter, iter1;
1103
		Iterator iterAttr;
1104
		FeatureAttributeDescriptor attr;
1105
		Feature feature, feature1;
1106
		int i, ntimes;
1107
		Object v1, v2;
1206 1108

  
1207 1109

  
1208
			fullStoreIteratorTest(store);
1110
		fullStoreIteratorTest(store);
1209 1111

  
1210
			set = store.getFeatureSet();
1211
			set1 = store1.getFeatureSet();
1212
			ntimes = getRandom().nextInt(3) + 1;
1213
			for (i=0;i<ntimes;i++){
1214
				if (getRandom().nextBoolean()) {
1215
					iter = set.fastIterator();
1216
				} else {
1217
					iter = set.iterator();
1218
				}
1219
				if (getRandom().nextBoolean()) {
1220
					iter1 = set1.fastIterator();
1221
				} else {
1222
					iter1 = set1.iterator();
1223
				}
1224
				while (iter.hasNext()) {
1225
					feature = (Feature) iter.next();
1226
					feature1 = (Feature) iter1.next();
1112
		set = store.getFeatureSet();
1113
		set1 = store1.getFeatureSet();
1114
		ntimes = getRandom().nextInt(3) + 1;
1115
		for (i = 0; i < ntimes; i++) {
1116
			if (getRandom().nextBoolean()) {
1117
				iter = set.fastIterator();
1118
			} else {
1119
				iter = set.iterator();
1120
			}
1121
			if (getRandom().nextBoolean()) {
1122
				iter1 = set1.fastIterator();
1123
			} else {
1124
				iter1 = set1.iterator();
1125
			}
1126
			while (iter.hasNext()) {
1127
				feature = (Feature) iter.next();
1128
				feature1 = (Feature) iter1.next();
1227 1129

  
1228
					iterAttr = set.getDefaultFeatureType().iterator();
1229
					while (iterAttr.hasNext()) {
1230
						attr = (FeatureAttributeDescriptor) iterAttr.next();
1231
						v1 = feature.get(attr.getIndex());
1232
						v2 = feature1.get(attr.getIndex());
1233
						if (attr.getDataType() == DataTypes.STRING) {
1234
							if (v1 != null) {
1235
								v1 = ((String) v1).toLowerCase();
1236
							}
1237

  
1130
				iterAttr = set.getDefaultFeatureType().iterator();
1131
				while (iterAttr.hasNext()) {
1132
					attr = (FeatureAttributeDescriptor) iterAttr.next();
1133
					v1 = feature.get(attr.getIndex());
1134
					v2 = feature1.get(attr.getIndex());
1135
					if (attr.getDataType() == DataTypes.STRING) {
1136
						if (v1 != null) {
1137
							v1 = ((String) v1).toLowerCase();
1238 1138
						}
1239
						compareFeatureValue(v1, v2, attr);
1139

  
1240 1140
					}
1141
					compareFeatureValue(v1, v2, attr);
1241 1142
				}
1242
				assertFalse(iter1.hasNext());
1243
				iter.dispose();
1244
				iter1.dispose();
1245 1143
			}
1144
			assertFalse(iter1.hasNext());
1145
			iter.dispose();
1146
			iter1.dispose();
1147
		}
1246 1148

  
1247 1149

  
1248
			set.dispose();
1249
			set1.dispose();
1150
		set.dispose();
1151
		set1.dispose();
1250 1152

  
1251 1153

  
1252
			transform = new StringsToUpperTransform();
1253
			transform.setFeatureStore(store);
1154
		transform = new StringsToUpperTransform();
1155
		transform.setFeatureStore(store);
1254 1156

  
1255
			store.getTransforms().add(transform);
1157
		store.getTransforms().add(transform);
1256 1158

  
1257
			fullStoreIteratorTest(store);
1159
		fullStoreIteratorTest(store);
1258 1160

  
1259
			set = store.getFeatureSet();
1260
			set1 = store1.getFeatureSet();
1261
			ntimes = getRandom().nextInt(3) + 1;
1262
			for (i = 0; i < ntimes; i++) {
1263
				if (getRandom().nextBoolean()) {
1264
					iter = set.fastIterator();
1265
				} else {
1266
					iter = set.iterator();
1267
				}
1268
				if (getRandom().nextBoolean()) {
1269
					iter1 = set1.fastIterator();
1270
				} else {
1271
					iter1 = set1.iterator();
1272
				}
1273
				while (iter.hasNext()) {
1274
					feature = (Feature) iter.next();
1275
					feature1 = (Feature) iter1.next();
1161
		set = store.getFeatureSet();
1162
		set1 = store1.getFeatureSet();
1163
		ntimes = getRandom().nextInt(3) + 1;
1164
		for (i = 0; i < ntimes; i++) {
1165
			if (getRandom().nextBoolean()) {
1166
				iter = set.fastIterator();
1167
			} else {
1168
				iter = set.iterator();
1169
			}
1170
			if (getRandom().nextBoolean()) {
1171
				iter1 = set1.fastIterator();
1172
			} else {
1173
				iter1 = set1.iterator();
1174
			}
1175
			while (iter.hasNext()) {
1176
				feature = (Feature) iter.next();
1177
				feature1 = (Feature) iter1.next();
1276 1178

  
1277
					iterAttr = set.getDefaultFeatureType().iterator();
1278
					while (iterAttr.hasNext()) {
1279
						attr = (FeatureAttributeDescriptor) iterAttr.next();
1280
						v1 = feature.get(attr.getIndex());
1281
						v2 = feature1.get(attr.getIndex());
1282
						if (attr.getDataType() == DataTypes.STRING) {
1283
							if (v1 != null) {
1284
								v1 = ((String) v1).toUpperCase();
1285
							}
1286

  
1179
				iterAttr = set.getDefaultFeatureType().iterator();
1180
				while (iterAttr.hasNext()) {
1181
					attr = (FeatureAttributeDescriptor) iterAttr.next();
1182
					v1 = feature.get(attr.getIndex());
1183
					v2 = feature1.get(attr.getIndex());
1184
					if (attr.getDataType() == DataTypes.STRING) {
1185
						if (v1 != null) {
1186
							v1 = ((String) v1).toUpperCase();
1287 1187
						}
1288
						compareFeatureValue(v1, v2, attr);
1188

  
1289 1189
					}
1190
					compareFeatureValue(v1, v2, attr);
1290 1191
				}
1291
				assertFalse(iter1.hasNext());
1292
				iter.dispose();
1293
				iter1.dispose();
1294 1192
			}
1295
			set.dispose();
1296
			set1.dispose();
1193
			assertFalse(iter1.hasNext());
1194
			iter.dispose();
1195
			iter1.dispose();
1196
		}
1197
		set.dispose();
1198
		set1.dispose();
1297 1199

  
1298 1200

  
1299
			transform = new AddPrefixAttributeName("_");
1300
			transform.setFeatureStore(store);
1201
		transform = new AddPrefixAttributeName("_");
1202
		transform.setFeatureStore(store);
1301 1203

  
1302
			store.getTransforms().add(transform);
1204
		store.getTransforms().add(transform);
1303 1205

  
1304
			fullStoreIteratorTest(store);
1206
		fullStoreIteratorTest(store);
1305 1207

  
1306
			set = store.getFeatureSet();
1307
			set1 = store1.getFeatureSet();
1308
			ntimes = getRandom().nextInt(3) + 1;
1309
			for (i = 0; i < ntimes; i++) {
1310
				if (getRandom().nextBoolean()) {
1311
					iter = set.fastIterator();
1312
				} else {
1313
					iter = set.iterator();
1314
				}
1315
				if (getRandom().nextBoolean()) {
1316
					iter1 = set1.fastIterator();
1317
				} else {
1318
					iter1 = set1.iterator();
1319
				}
1320
				while (iter.hasNext()) {
1321
					feature = (Feature) iter.next();
1322
					feature1 = (Feature) iter1.next();
1208
		set = store.getFeatureSet();
1209
		set1 = store1.getFeatureSet();
1210
		ntimes = getRandom().nextInt(3) + 1;
1211
		for (i = 0; i < ntimes; i++) {
1212
			if (getRandom().nextBoolean()) {
1213
				iter = set.fastIterator();
1214
			} else {
1215
				iter = set.iterator();
1216
			}
1217
			if (getRandom().nextBoolean()) {
1218
				iter1 = set1.fastIterator();
1219
			} else {
1220
				iter1 = set1.iterator();
1221
			}
1222
			while (iter.hasNext()) {
1223
				feature = (Feature) iter.next();
1224
				feature1 = (Feature) iter1.next();
1323 1225

  
1324
					iterAttr = set1.getDefaultFeatureType().iterator();
1325
					while (iterAttr.hasNext()) {
1326
						attr = (FeatureAttributeDescriptor) iterAttr.next();
1327
						v1 = feature.get("_" + attr.getName());
1328
						v2 = feature1.get(attr.getIndex());
1329
						if (attr.getDataType() == DataTypes.STRING) {
1330
							if (v1 != null) {
1331
								v1 = ((String) v1).toUpperCase();
1332
							}
1333

  
1226
				iterAttr = set1.getDefaultFeatureType().iterator();
1227
				while (iterAttr.hasNext()) {
1228
					attr = (FeatureAttributeDescriptor) iterAttr.next();
1229
					v1 = feature.get("_" + attr.getName());
1230
					v2 = feature1.get(attr.getIndex());
1231
					if (attr.getDataType() == DataTypes.STRING) {
1232
						if (v1 != null) {
1233
							v1 = ((String) v1).toUpperCase();
1334 1234
						}
1335
						compareFeatureValue(v1, v2, attr);
1235

  
1336 1236
					}
1237
					compareFeatureValue(v1, v2, attr);
1337 1238
				}
1338
				assertFalse(iter1.hasNext());
1339
				iter.dispose();
1340
				iter1.dispose();
1341 1239
			}
1342
			set.dispose();
1343
			set1.dispose();
1240
			assertFalse(iter1.hasNext());
1241
			iter.dispose();
1242
			iter1.dispose();
1243
		}
1244
		set.dispose();
1245
		set1.dispose();
1344 1246

  
1345
			transform = new AddAttribute("__new__", DataTypes.STRING, "$$OK$$",
1346
					10);
1347
			transform.setFeatureStore(store);
1247
		transform = new AddAttribute("__new__", DataTypes.STRING, "$$OK$$", 10);
1248
		transform.setFeatureStore(store);
1348 1249

  
1349
			store.getTransforms().add(transform);
1250
		store.getTransforms().add(transform);
1350 1251

  
1351
			fullStoreIteratorTest(store);
1252
		fullStoreIteratorTest(store);
1352 1253

  
1353
			set = store.getFeatureSet();
1354
			set1 = store1.getFeatureSet();
1355
			ntimes = getRandom().nextInt(3) + 1;
1356
			for (i = 0; i < ntimes; i++) {
1357
				if (getRandom().nextBoolean()) {
1358
					iter = set.fastIterator();
1359
				} else {
1360
					iter = set.iterator();
1361
				}
1362
				if (getRandom().nextBoolean()) {
1363
					iter1 = set1.fastIterator();
1364
				} else {
1365
					iter1 = set1.iterator();
1366
				}
1367
				while (iter.hasNext()) {
1368
					feature = (Feature) iter.next();
1369
					feature1 = (Feature) iter1.next();
1254
		set = store.getFeatureSet();
1255
		set1 = store1.getFeatureSet();
1256
		ntimes = getRandom().nextInt(3) + 1;
1257
		for (i = 0; i < ntimes; i++) {
1258
			if (getRandom().nextBoolean()) {
1259
				iter = set.fastIterator();
1260
			} else {
1261
				iter = set.iterator();
1262
			}
1263
			if (getRandom().nextBoolean()) {
1264
				iter1 = set1.fastIterator();
1265
			} else {
1266
				iter1 = set1.iterator();
1267
			}
1268
			while (iter.hasNext()) {
1269
				feature = (Feature) iter.next();
1270
				feature1 = (Feature) iter1.next();
1370 1271

  
1371
					iterAttr = set1.getDefaultFeatureType().iterator();
1372
					while (iterAttr.hasNext()) {
1373
						attr = (FeatureAttributeDescriptor) iterAttr.next();
1374
						v1 = feature.get("_" + attr.getName());
1375
						v2 = feature1.get(attr.getIndex());
1376
						if (attr.getDataType() == DataTypes.STRING) {
1377
							if (v1 != null) {
1378
								v1 = ((String) v1).toUpperCase();
1379
							}
1380

  
1272
				iterAttr = set1.getDefaultFeatureType().iterator();
1273
				while (iterAttr.hasNext()) {
1274
					attr = (FeatureAttributeDescriptor) iterAttr.next();
1275
					v1 = feature.get("_" + attr.getName());
1276
					v2 = feature1.get(attr.getIndex());
1277
					if (attr.getDataType() == DataTypes.STRING) {
1278
						if (v1 != null) {
1279
							v1 = ((String) v1).toUpperCase();
1381 1280
						}
1382
						compareFeatureValue(v1, v2, attr);
1281

  
1383 1282
					}
1384
					compareFeatureValue(feature.get("__new__"), "$$OK$$", set1
1385
							.getDefaultFeatureType().getAttributeDescriptor(
1386
									"__new__"));
1283
					compareFeatureValue(v1, v2, attr);
1387 1284
				}
1388
				assertFalse(iter1.hasNext());
1389
				iter.dispose();
1390
				iter1.dispose();
1285
				compareFeatureValue(feature.get("__new__"), "$$OK$$", set1
1286
						.getDefaultFeatureType().getAttributeDescriptor(
1287
								"__new__"));
1391 1288
			}
1392
			set.dispose();
1393
			set1.dispose();
1289
			assertFalse(iter1.hasNext());
1290
			iter.dispose();
1291
			iter1.dispose();
1292
		}
1293
		set.dispose();
1294
		set1.dispose();
1394 1295

  
1395 1296

  
1396
			transform = new RemoveAttribute("__new__");
1397
			transform.setFeatureStore(store);
1297
		transform = new RemoveAttribute("__new__");
1298
		transform.setFeatureStore(store);
1398 1299

  
1399
			store.getTransforms().add(transform);
1300
		store.getTransforms().add(transform);
1400 1301

  
1401
			fullStoreIteratorTest(store);
1302
		fullStoreIteratorTest(store);
1402 1303

  
1403
			set = store.getFeatureSet();
1404
			set1 = store1.getFeatureSet();
1405
			ntimes = getRandom().nextInt(3) + 1;
1406
			for (i = 0; i < ntimes; i++) {
1407
				if (getRandom().nextBoolean()) {
1408
					iter = set.fastIterator();
1409
				} else {
1410
					iter = set.iterator();
1411
				}
1412
				if (getRandom().nextBoolean()) {
1413
					iter1 = set1.fastIterator();
1414
				} else {
1415
					iter1 = set1.iterator();
1416
				}
1417
				while (iter.hasNext()) {
1418
					feature = (Feature) iter.next();
1419
					feature1 = (Feature) iter1.next();
1304
		set = store.getFeatureSet();
1305
		set1 = store1.getFeatureSet();
1306
		ntimes = getRandom().nextInt(3) + 1;
1307
		for (i = 0; i < ntimes; i++) {
1308
			if (getRandom().nextBoolean()) {
1309
				iter = set.fastIterator();
1310
			} else {
1311
				iter = set.iterator();
1312
			}
1313
			if (getRandom().nextBoolean()) {
1314
				iter1 = set1.fastIterator();
1315
			} else {
1316
				iter1 = set1.iterator();
1317
			}
1318
			while (iter.hasNext()) {
1319
				feature = (Feature) iter.next();
1320
				feature1 = (Feature) iter1.next();
1420 1321

  
1421
					iterAttr = set1.getDefaultFeatureType().iterator();
1422
					while (iterAttr.hasNext()) {
1423
						attr = (FeatureAttributeDescriptor) iterAttr.next();
1424
						v1 = feature.get("_" + attr.getName());
1425
						v2 = feature1.get(attr.getIndex());
1426
						if (attr.getDataType() == DataTypes.STRING) {
1427
							if (v1 != null) {
1428
								v1 = ((String) v1).toUpperCase();
1429
							}
1430

  
1322
				iterAttr = set1.getDefaultFeatureType().iterator();
1323
				while (iterAttr.hasNext()) {
1324
					attr = (FeatureAttributeDescriptor) iterAttr.next();
1325
					v1 = feature.get("_" + attr.getName());
1326
					v2 = feature1.get(attr.getIndex());
1327
					if (attr.getDataType() == DataTypes.STRING) {
1328
						if (v1 != null) {
1329
							v1 = ((String) v1).toUpperCase();
1431 1330
						}
1432
						compareFeatureValue(v1, v2, attr);
1331

  
1433 1332
					}
1434
					assertNull(feature.getType().getAttributeDescriptor(
1435
							"__new__"));
1333
					compareFeatureValue(v1, v2, attr);
1436 1334
				}
1437
				assertFalse(iter1.hasNext());
1438
				iter.dispose();
1439
				iter1.dispose();
1335
				assertNull(feature.getType().getAttributeDescriptor("__new__"));
1440 1336
			}
1441
			set.dispose();
1442
			set1.dispose();
1337
			assertFalse(iter1.hasNext());
1338
			iter.dispose();
1339
			iter1.dispose();
1340
		}
1341
		set.dispose();
1342
		set1.dispose();
1443 1343

  
1444
			store.getTransforms().clear();
1344
		store.getTransforms().clear();
1445 1345

  
1446
			compareStores(store, store1);
1346
		compareStores(store, store1);
1447 1347

  
1448 1348

  
1449
			store.dispose();
1450
			store1.dispose();
1451
		} catch (DataException e3) {
1452
			e3.printStackTrace();
1453
			fail();
1454
			return;
1455
		}
1349
		store.dispose();
1350
		store1.dispose();
1456 1351
	}
1457 1352

  
1458 1353
	abstract class myTransform implements FeatureStoreTransform {
......
1895 1790
	}
1896 1791

  
1897 1792

  
1898
	public void testFeatureReference() {
1793
	public void testFeatureReference() throws Exception {
1794
		DataStoreParameters dbfParameters = this
1795
				.getDefaultDataStoreParameters();
1899 1796

  
1900
		try {
1901
			DataStoreParameters dbfParameters = this
1902
					.getDefaultDataStoreParameters();
1797
		FeatureStore store = (FeatureStore) dataManager
1798
				.createStore(dbfParameters);
1903 1799

  
1904
			FeatureStore store = (FeatureStore) dataManager
1905
					.createStore(dbfParameters);
1800
		Feature feature, refered;
1801
		FeatureSet set;
1802
		int nTimes2 = getRandom().nextInt(2) + 1;
1906 1803

  
1907
			Feature feature, refered;
1908
			FeatureSet set;
1909
			int nTimes2 = getRandom().nextInt(2) + 1;
1804
		for (int j = 0; j < nTimes2; j++) {
1805
			set = store.getFeatureSet();
1806
			DisposableIterator iter;
1910 1807

  
1911
			for (int j = 0; j < nTimes2; j++) {
1912
				set = store.getFeatureSet();
1913
				DisposableIterator iter;
1914

  
1915
				int nTimes = getRandom().nextInt(2) + 3;
1916
				for (int i = 0; i < nTimes; i++) {
1917
					if (getRandom().nextBoolean()) {
1918
						iter = set.fastIterator();
1919
					} else {
1920
						iter = set.fastIterator();
1921
					}
1922
					while (iter.hasNext()) {
1923
						feature = (Feature) iter.next();
1924
						refered = feature.getReference().getFeature();
1925
						compareFeatures(feature, refered);
1926
					}
1927
					iter.dispose();
1808
			int nTimes = getRandom().nextInt(2) + 3;
1809
			for (int i = 0; i < nTimes; i++) {
1810
				if (getRandom().nextBoolean()) {
1811
					iter = set.fastIterator();
1812
				} else {
1813
					iter = set.fastIterator();
1928 1814
				}
1929

  
1930
				set.dispose();
1815
				while (iter.hasNext()) {
1816
					feature = (Feature) iter.next();
1817
					refered = feature.getReference().getFeature();
1818
					compareFeatures(feature, refered);
1819
				}
1820
				iter.dispose();
1931 1821
			}
1932 1822

  
1933
			nTimes2 = getRandom().nextInt(5) + 2;
1934
			FeatureQuery query = store.createFeatureQuery();
1823
			set.dispose();
1824
		}
1935 1825

  
1936
			for (int j = 0; j < nTimes2; j++) {
1937
				DisposableIterator iter;
1826
		nTimes2 = getRandom().nextInt(5) + 2;
1827
		FeatureQuery query = store.createFeatureQuery();
1938 1828

  
1939
				query.setAttributeNames(getRandomAttibuteList(store
1940
						.getDefaultFeatureType()));
1941
				set = store.getFeatureSet(query);
1829
		for (int j = 0; j < nTimes2; j++) {
1830
			DisposableIterator iter;
1942 1831

  
1943
				int nTimes = getRandom().nextInt(3) + 3;
1944
				for (int i = 0; i < nTimes; i++) {
1945
					if (getRandom().nextBoolean()) {
1946
						iter = set.fastIterator();
1947
					} else {
1948
						iter = set.fastIterator();
1949
					}
1950
					while (iter.hasNext()) {
1951
						feature = (Feature) iter.next();
1952
						refered = feature.getReference().getFeature(
1953
								set.getDefaultFeatureType());
1954
						compareFeatures(feature, refered);
1955
					}
1956
					iter.dispose();
1957
				}
1832
			query.setAttributeNames(getRandomAttibuteList(store
1833
					.getDefaultFeatureType()));
1834
			set = store.getFeatureSet(query);
1958 1835

  
1959
				set.dispose();
1836
			int nTimes = getRandom().nextInt(3) + 3;
1837
			for (int i = 0; i < nTimes; i++) {
1838
				if (getRandom().nextBoolean()) {
1839
					iter = set.fastIterator();
1840
				} else {
1841
					iter = set.fastIterator();
1842
				}
1843
				while (iter.hasNext()) {
1844
					feature = (Feature) iter.next();
1845
					refered = feature.getReference().getFeature(
1846
							set.getDefaultFeatureType());
1847
					compareFeatures(feature, refered);
1848
				}
1849
				iter.dispose();
1960 1850
			}
1961 1851

  
1852
			set.dispose();
1853
		}
1962 1854

  
1963 1855

  
1964
			store.dispose();
1965
		} catch (DataException e3) {
1966
			e3.printStackTrace();
1967
			fail();
1968
			return;
1969
		}
1970 1856

  
1857
		store.dispose();
1858

  
1971 1859
	}
1972 1860
}

Also available in: Unified diff