influxdb/dbrp/bucket_service_test.go

66 lines
1.5 KiB
Go

package dbrp
import (
"context"
"testing"
"github.com/golang/mock/gomock"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/dbrp/mocks"
"github.com/influxdata/influxdb/v2/snowflake"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
)
var generator = snowflake.NewDefaultIDGenerator()
func TestBucketService(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
var (
ctx = context.Background()
bucketID = generator.ID()
orgID = generator.ID()
mappingID = generator.ID()
logger = zap.NewNop()
bucketServiceMock = mocks.NewMockBucketService(ctrl)
dbrpService = mocks.NewMockDBRPMappingServiceV2(ctrl)
bucket = &influxdb.Bucket{
ID: bucketID,
OrgID: orgID,
}
)
findBucket := bucketServiceMock.EXPECT().
FindBucketByID(gomock.Any(), bucketID).
Return(bucket, nil)
deleteBucket := bucketServiceMock.EXPECT().
DeleteBucket(gomock.Any(), bucketID).
Return(nil)
findMapping := dbrpService.EXPECT().
FindMany(gomock.Any(), influxdb.DBRPMappingFilterV2{
BucketID: &bucketID,
OrgID: &orgID,
}).Return([]*influxdb.DBRPMappingV2{
{ID: mappingID},
}, 1, nil)
deleteMapping := dbrpService.EXPECT().
Delete(gomock.Any(), orgID, mappingID).
Return(nil)
gomock.InOrder(
findBucket,
deleteBucket,
findMapping,
deleteMapping,
)
bucketService := NewBucketService(logger, bucketServiceMock, dbrpService)
err := bucketService.DeleteBucket(ctx, bucketID)
require.NoError(t, err)
}