updates for 0.9.4
[debian/openrocket] / test / net / sf / openrocket / util / UniqueIDTest.java
1 package net.sf.openrocket.util;
2
3 import static org.junit.Assert.*;
4
5 import org.junit.Test;
6
7 public class UniqueIDTest {
8
9         @Test
10         public void integerTest() {
11                 
12                 int n = UniqueID.next();
13                 assertTrue(n > 0);
14                 assertEquals(n+1, UniqueID.next());
15                 assertEquals(n+2, UniqueID.next());
16                 assertEquals(n+3, UniqueID.next());
17                 
18         }
19         
20         
21         @Test
22         public void stringTest() {
23                 String id = UniqueID.uuid();
24                 assertNotNull(id);
25                 assertNotSame(id, UniqueID.uuid());
26                 assertNotSame(id, UniqueID.uuid());
27         }
28         
29         @Test
30         public void hashedTest() {
31                 String id = UniqueID.generateHashedID();
32                 assertNotNull(id);
33                 
34                 boolean matchhigh = false;
35                 boolean matchlow = false;
36                 for (int i=0; i<100; i++) {
37                         String newid = UniqueID.generateHashedID();
38                         assertNotNull(newid);
39                         assertNotSame(id, newid);
40                         assertTrue(newid.matches("^[0-9a-fA-F]{32}$"));
41                         
42                         // Check that both high and low values occur
43                         matchhigh = matchhigh || newid.matches("^([0-9a-fA-F][0-9a-fA-F])*[A-F].*");
44                         matchlow = matchlow || newid.matches("^([0-9a-fA-F][0-9a-fA-F])*[0-4].*");
45                 }
46                 assertTrue(matchhigh);
47                 assertTrue(matchlow);
48         }
49         
50 }