diff -r d5e927d5853b -r 7cee158cb8cd javaextensions/midprms_db/tsrc/javasrc/com/nokia/mj/test/rms/TestRecordEnumeration.java --- a/javaextensions/midprms_db/tsrc/javasrc/com/nokia/mj/test/rms/TestRecordEnumeration.java Tue Sep 14 21:06:50 2010 +0300 +++ b/javaextensions/midprms_db/tsrc/javasrc/com/nokia/mj/test/rms/TestRecordEnumeration.java Wed Sep 15 12:05:25 2010 +0300 @@ -139,6 +139,14 @@ } })); + aSuite.addTest(new TestRecordEnumeration("testEnumerationOrder", new TestMethod() + { + public void run(TestCase tc) + { + ((TestRecordEnumeration) tc).testEnumerationOrder(); + } + })); + return aSuite; } @@ -1147,5 +1155,56 @@ } } + public void testEnumerationOrder() + { + // This test checks that record enumeration returns records in FIFO order + // if null RecordComparator is provided + // MIDP spec says that order is undefined in this case but many acceptance tests + // assume this order + System.out.println("TestRecordEnumeration.testEnumerationOrder()"); + RecordStore store = null; + String rec_store_name = "testEnumerationOrder"; + + try + { + // 0: Init + System.out.println("0: Init"); + try + { + RecordStore.deleteRecordStore(rec_store_name); + } + catch (Exception e) {} + store = RecordStore.openRecordStore(rec_store_name, true); + populateRecordStore(store); + + // 1: check order + System.out.println("1: check order"); + RecordEnumeration enumeration = store.enumerateRecords(null, null, false); + for(int i = 0; enumeration.hasNextElement(); i++) + { + byte[] r = enumeration.nextRecord(); + assertEquals(r, iData[i].getBytes()); + } + } + catch (Exception e) + { + e.printStackTrace(); + fail("Unexpected exception " + e); + } + finally + { + try + { + store.closeRecordStore(); + } + catch (Exception e) {} + try + { + RecordStore.deleteRecordStore(rec_store_name); + } + catch (Exception e) {} + } + } + }