@Test public void testInitSequence() { UIDSequencer seq = uidGeneratorService.getSequencer(); seq.getNext("mySequence"); seq.getNext("mySequence"); seq.initSequence("mySequence", 1); assertTrue(seq.getNext("mySequence") > 1); seq.initSequence("mySequence", 10); assertTrue(seq.getNext("mySequence") > 10); assertTrue(seq.getNextLong("mySequence") > 10); }
@Test public void testIncrement() throws Exception { UIDSequencer seq = uidGeneratorService.getSequencer(); assertNotNull(seq); assertTrue(seq.getClass().isAssignableFrom(ESUIDSequencer.class)); assertEquals(1, seq.getNext("myseq")); assertEquals(2, seq.getNext("myseq")); assertEquals(3L, seq.getNextLong("myseq")); assertEquals(1, seq.getNext("myseq2")); assertEquals(4, seq.getNext("myseq")); assertEquals(2, seq.getNext("myseq2")); }
@Test @Ignore("NXP-20582: timeout waiting termination") public void testConcurrency() throws Exception { final String seqName = "mt"; int nbCalls = 5000; final UIDSequencer seq = uidGeneratorService.getSequencer(); ThreadPoolExecutor tpe = new ThreadPoolExecutor( 5, 5, 500L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(nbCalls + 1)); for (int i = 0; i < nbCalls; i++) { tpe.submit( new Runnable() { @Override public void run() { seq.getNext(seqName); } }); } tpe.shutdown(); boolean finish = tpe.awaitTermination(20, TimeUnit.SECONDS); assertTrue("timeout", finish); assertEquals(nbCalls + 1, seq.getNext(seqName)); }