audit-go/pkg/audit/utils/sequence_generator_test.go
Christian Schaible (EXT) 85aae1c2e7 Merged PR 779949: feat: Refactor module structure to reflect best practices
Security-concept-update-needed: false.

JIRA Work Item: STACKITALO-259
2025-05-19 11:54:00 +00:00

59 lines
2.1 KiB
Go

package utils
import (
"testing"
"github.com/stretchr/testify/assert"
)
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())
})
}