diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/net/java/sip/communicator/slick/history/TestHistoryService.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/net/java/sip/communicator/slick/history/TestHistoryService.java b/test/net/java/sip/communicator/slick/history/TestHistoryService.java index 93fda1d..74ad5fb 100644 --- a/test/net/java/sip/communicator/slick/history/TestHistoryService.java +++ b/test/net/java/sip/communicator/slick/history/TestHistoryService.java @@ -44,6 +44,7 @@ public class TestHistoryService extends TestCase { suite.addTest(new TestHistoryService("testReadRecords")); suite.addTest(new TestHistoryService("testPurgeLocallyStoredHistory")); suite.addTest(new TestHistoryService("testCreatingHistoryIDFromFS")); + suite.addTest(new TestHistoryService("testWriteRecordsWithMaxNumber")); return suite; } @@ -227,4 +228,65 @@ public class TestHistoryService extends TestCase { testNoSpecialCharsIDFSRead.getID()[i]); } } + + public void testWriteRecordsWithMaxNumber() + { + HistoryWriter writer = this.history.getWriter(); + HistoryReader reader = this.history.getReader(); + + try + { + + for (int i = 0; i < 20; i++) + { + writer.addRecord(new String[] { "" + i, + "name" + i, + i % 2 == 0 ? "m" : "f" }, 20); + synchronized(this) + { + try + { + wait(100); + } + catch(Throwable t){} + } + } + + QueryResultSet<HistoryRecord> recs = reader.findLast(20); + int count = 0; + while(recs.hasNext()) + { + count++; + recs.next(); + } + + assertEquals( "Wrong count of messages", 20, count); + + writer.addRecord(new String[] { "" + 21, + "name" + 21, "f" }, 20); + + recs = reader.findLast(20); + count = 0; + boolean foundFirstMessage = false; + while(recs.hasNext()) + { + count++; + HistoryRecord hr = recs.next(); + + if(hr.getPropertyValues()[0].equals("0")) + foundFirstMessage = true; + } + + assertEquals( "Wrong count of messages", 20, count); + + assertFalse("Wrong message removed, must be the first one", + foundFirstMessage); + + } catch (Exception e) + { + e.printStackTrace(); + fail("Could not write records. Reason: " + e); + } + } + } |