mirror of
https://dev.azure.com/schwarzit/schwarzit.stackit-public/_git/audit-go
synced 2026-02-08 09:07:26 +00:00
58 lines
2.1 KiB
Go
58 lines
2.1 KiB
Go
package utils
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func Test_DefaultSequenceNumberGenerator(t *testing.T) {
|
|
|
|
t.Run("next", func(t *testing.T) {
|
|
var sequenceGenerator = NewDefaultSequenceNumberGenerator()
|
|
assert.Equal(t, uint64(0), sequenceGenerator.Next())
|
|
})
|
|
|
|
t.Run("revert", func(t *testing.T) {
|
|
var sequenceGenerator = NewDefaultSequenceNumberGenerator()
|
|
assert.Equal(t, uint64(0), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
sequenceGenerator.Revert(uint64(1))
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
})
|
|
|
|
t.Run("revert first", func(t *testing.T) {
|
|
var sequenceGenerator = NewDefaultSequenceNumberGenerator()
|
|
assert.Equal(t, uint64(0), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
sequenceGenerator.Revert(uint64(0))
|
|
assert.Equal(t, uint64(0), sequenceGenerator.Next())
|
|
})
|
|
|
|
t.Run("revert same value multiple times", func(t *testing.T) {
|
|
var sequenceGenerator = NewDefaultSequenceNumberGenerator()
|
|
assert.Equal(t, uint64(0), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(2), sequenceGenerator.Next())
|
|
sequenceGenerator.Revert(uint64(1))
|
|
sequenceGenerator.Revert(uint64(1))
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(3), sequenceGenerator.Next())
|
|
})
|
|
|
|
t.Run("get and revert multiple", func(t *testing.T) {
|
|
var sequenceGenerator = NewDefaultSequenceNumberGenerator()
|
|
assert.Equal(t, uint64(0), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
sequenceGenerator.Revert(uint64(1))
|
|
assert.Equal(t, uint64(1), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(2), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(3), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(4), sequenceGenerator.Next())
|
|
sequenceGenerator.Revert(uint64(2))
|
|
sequenceGenerator.Revert(uint64(3))
|
|
assert.Equal(t, uint64(2), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(3), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(5), sequenceGenerator.Next())
|
|
assert.Equal(t, uint64(6), sequenceGenerator.Next())
|
|
})
|
|
}
|