fleet/server/datastore/mysql/common_mysql/batch_test.go
Victor Lyuboslavsky 7e1a808a8c
Fixing issue where deleted profiles were being sent to devices. (#25095)
#24804 

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files)
for more information.
- [x] Added/updated tests
- [x] If database migrations are included, checked table schema to
confirm autoupdate
- [x] Manual QA for all new/changed functionality
2025-01-06 13:16:34 -06:00

52 lines
1.2 KiB
Go

package common_mysql
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestBatchProcessSimple(t *testing.T) {
payloads := []int{1, 2, 3, 4, 5}
executeBatch := func(payloadsInThisBatch []int) error {
t.Fatal("executeBatch should not be called")
return nil
}
// No payloads
err := BatchProcessSimple(nil, 10, executeBatch)
assert.NoError(t, err)
// No batch size
err = BatchProcessSimple(payloads, 0, executeBatch)
assert.NoError(t, err)
// No executeBatch
err = BatchProcessSimple(payloads, 10, nil)
assert.NoError(t, err)
// Large batch size -- all payloads executed in one batch
executeBatch = func(payloadsInThisBatch []int) error {
assert.Equal(t, payloads, payloadsInThisBatch)
return nil
}
err = BatchProcessSimple(payloads, 10, executeBatch)
assert.NoError(t, err)
// Small batch size
numCalls := 0
executeBatch = func(payloadsInThisBatch []int) error {
numCalls++
switch numCalls {
case 1:
assert.Equal(t, []int{1, 2, 3}, payloadsInThisBatch)
case 2:
assert.Equal(t, []int{4, 5}, payloadsInThisBatch)
default:
t.Errorf("Unexpected number of calls to executeBatch: %d", numCalls)
}
return nil
}
err = BatchProcessSimple(payloads, 3, executeBatch)
assert.NoError(t, err)
}