@@ -42,6 +42,28 @@ public void testBasicNoOptimizerUsage() {
42
42
assertEquals ( 11 , sequence .getTimesCalled () ); // an extra time to get to 1 initially
43
43
assertEquals ( 10 , sequence .getCurrentValue () );
44
44
}
45
+ @ Test
46
+ public void testBasicNoOptimizerUsageWithNegativeValues () {
47
+ // test historic sequence behavior, where the initial values start at 1...
48
+ SourceMock sequence = new SourceMock ( -1 , -1 );
49
+ Optimizer optimizer = buildNoneOptimizer ( -1 , -1 );
50
+ for ( int i = 1 ; i < 11 ; i ++ ) {
51
+ final Long next = ( Long ) optimizer .generate ( sequence );
52
+ assertEquals ( -i , next .intValue () );
53
+ }
54
+ assertEquals ( 10 , sequence .getTimesCalled () );
55
+ assertEquals ( -10 , sequence .getCurrentValue () );
56
+
57
+ // test historic table behavior, where the initial values started at 0 (we now force 1 to be the first used id value)
58
+ sequence = new SourceMock ( 0 );
59
+ optimizer = buildNoneOptimizer ( -1 , 1 );
60
+ for ( int i = 1 ; i < 11 ; i ++ ) {
61
+ final Long next = ( Long ) optimizer .generate ( sequence );
62
+ assertEquals ( i , next .intValue () );
63
+ }
64
+ assertEquals ( 11 , sequence .getTimesCalled () ); // an extra time to get to 1 initially
65
+ assertEquals ( 10 , sequence .getCurrentValue () );
66
+ }
45
67
46
68
@ Test
47
69
public void testBasicHiLoOptimizerUsage () {
0 commit comments