1 package org.collectionspace.services.id.part.test;
3 import org.collectionspace.services.id.part.SequenceIDPart;
4 import org.collectionspace.services.id.part.NumericSequenceIDPart;
6 import org.testng.Assert;
7 import org.testng.annotations.Test;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
12 public class NumericSequenceIDPartTest {
15 LoggerFactory.getLogger(NumericSequenceIDPartTest.class);
21 public void newIDWithDefaultInitialValue() {
22 part = new NumericSequenceIDPart();
24 Assert.assertEquals(id, "1");
25 part.setCurrentID(id);
28 Assert.assertEquals(id, "2");
29 part.setCurrentID(id);
32 Assert.assertEquals(id, "3");
33 part.setCurrentID(id);
36 Assert.assertEquals(id, "4");
40 public void newIDWithSuppliedInitialValue() {
42 part = new NumericSequenceIDPart(100);
44 Assert.assertEquals(id, "100");
45 part.setCurrentID(id);
48 Assert.assertEquals(id, "101");
49 part.setCurrentID(id);
52 Assert.assertEquals(id, "102");
54 // Tests whether default formatting has disabled grouping.
56 part = new NumericSequenceIDPart(12345);
58 Assert.assertEquals(id, "12345"); // No grouping separator; e.g. 12,345
59 part.setCurrentID(id);
62 Assert.assertEquals(id, "12346");
63 part.setCurrentID(id);
68 public void newIDWithIncrementByValue() {
69 part = new NumericSequenceIDPart(5,5);
71 Assert.assertEquals(id, "5");
72 part.setCurrentID(id);
75 Assert.assertEquals(id, "10");
76 part.setCurrentID(id);
79 Assert.assertEquals(id, "15");
83 public void formatWithLeadingZeros() {
85 // Pad at left with leading zeros up to width specified.
86 part = new NumericSequenceIDPart("000");
88 Assert.assertEquals(id, "001");
89 part.setCurrentID(id);
92 Assert.assertEquals(id, "002");
93 part.setCurrentID(id);
95 part = new NumericSequenceIDPart("000", 20, 5);
97 Assert.assertEquals(id, "020");
98 part.setCurrentID(id);
101 Assert.assertEquals(id, "025");
102 part.setCurrentID(id);
104 // Numerals with more digits than pattern do not receive padding.
105 part = new NumericSequenceIDPart("000", 5000, 1);
107 Assert.assertEquals(id, "5000");
108 part.setCurrentID(id);
111 Assert.assertEquals(id, "5001");
112 part.setCurrentID(id);
116 public void formatWithSeparators() {
118 part = new NumericSequenceIDPart("#,###", 1234567, 1);
120 Assert.assertEquals(id, "1,234,567");
121 part.setCurrentID(id);
124 Assert.assertEquals(id, "1,234,568");
125 part.setCurrentID(id);
129 public void isValid() {
130 part = new NumericSequenceIDPart();
131 Assert.assertTrue(part.getValidator().isValid(part.newID()));