]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
500d2cd0fa762d550053a8d40630b60430e10ba3
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.id.part.test;
2
3 import org.collectionspace.services.id.part.SequenceIDPart;
4 import org.collectionspace.services.id.part.NumericSequenceIDPart;
5
6 import org.testng.Assert;
7 import org.testng.annotations.Test;
8
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11
12 public class NumericSequenceIDPartTest {
13
14     final Logger logger =
15         LoggerFactory.getLogger(NumericSequenceIDPartTest.class);
16
17     SequenceIDPart part;
18     String id;
19
20     @Test
21     public void newIDWithDefaultInitialValue() {
22         part = new NumericSequenceIDPart();
23         id = part.newID();
24         Assert.assertEquals(id, "1");
25         part.setCurrentID(id);
26
27         id = part.newID();
28         Assert.assertEquals(id, "2");
29         part.setCurrentID(id);
30
31         id = part.newID();
32         Assert.assertEquals(id, "3");
33         part.setCurrentID(id);
34
35         id = part.newID();
36         Assert.assertEquals(id, "4");
37     }
38
39     @Test
40     public void newIDWithSuppliedInitialValue() {
41
42         part = new NumericSequenceIDPart(100);
43         id = part.newID();
44         Assert.assertEquals(id, "100");
45         part.setCurrentID(id);
46
47         id = part.newID();
48         Assert.assertEquals(id, "101");
49         part.setCurrentID(id);
50
51         id = part.newID();
52         Assert.assertEquals(id, "102");
53
54         // Tests whether default formatting has disabled grouping.
55
56         part = new NumericSequenceIDPart(12345);
57         id = part.newID();
58         Assert.assertEquals(id, "12345"); // No grouping separator; e.g. 12,345
59         part.setCurrentID(id);
60
61         id = part.newID();
62         Assert.assertEquals(id, "12346");
63         part.setCurrentID(id);
64
65     }
66
67     @Test
68     public void newIDWithIncrementByValue() {
69         part = new NumericSequenceIDPart(5,5);
70         id = part.newID();
71         Assert.assertEquals(id, "5");
72         part.setCurrentID(id);
73
74         id = part.newID();
75         Assert.assertEquals(id, "10");
76         part.setCurrentID(id);
77
78         id = part.newID();
79         Assert.assertEquals(id, "15");
80     }
81
82     @Test
83     public void formatWithLeadingZeros() {
84         
85         // Pad at left with leading zeros up to width specified.
86         part = new NumericSequenceIDPart("000");
87         id = part.newID();
88         Assert.assertEquals(id, "001");
89         part.setCurrentID(id);
90
91         id = part.newID();
92         Assert.assertEquals(id, "002");
93         part.setCurrentID(id);
94
95         part = new NumericSequenceIDPart("000", 20, 5);
96         id = part.newID();
97         Assert.assertEquals(id, "020");
98         part.setCurrentID(id);
99
100         id = part.newID();
101         Assert.assertEquals(id, "025");
102         part.setCurrentID(id);
103
104         // Numerals with more digits than pattern do not receive padding.
105         part = new NumericSequenceIDPart("000", 5000, 1);
106         id = part.newID();
107         Assert.assertEquals(id, "5000");
108         part.setCurrentID(id);
109
110         id = part.newID();
111         Assert.assertEquals(id, "5001");
112         part.setCurrentID(id);
113     }
114
115     @Test
116     public void formatWithSeparators() {
117
118         part = new NumericSequenceIDPart("#,###", 1234567, 1);
119         id = part.newID();
120         Assert.assertEquals(id, "1,234,567");
121         part.setCurrentID(id);
122
123         id = part.newID();
124         Assert.assertEquals(id, "1,234,568");
125         part.setCurrentID(id);
126     }
127
128     @Test
129     public void isValid() {
130         part = new NumericSequenceIDPart();
131         Assert.assertTrue(part.getValidator().isValid(part.newID()));
132     }
133
134 }