package pimport

import (
	"testing"

	"github.com/stretchr/testify/require"
	"github.com/tidbcloud/dataflow-service/idl/pbgen/proto/dataflow"
)

func TestValidatorBuilder(t *testing.T) {
	var err error
	builder := &validatorBuilder{}
	for _, item := range []dataflow.ImportValidationItem{
		dataflow.ImportValidationItem_SOURCE_ACCESS_CHECK,
		dataflow.ImportValidationItem_TARGET_ACCESS_CHECK,
		dataflow.ImportValidationItem_FILTER_AND_RULE_CHECK,
		dataflow.ImportValidationItem_IMPORT_PRECHECK,
	} {
		validator, err := builder.Build(item)
		require.NoError(t, err)
		require.Equal(t, item, validator.GetCheckItem())
	}

	_, err = builder.Build(dataflow.ImportValidationItem_UNKNOWN)
	require.Error(t, err)
	_, err = builder.Build(dataflow.ImportValidationItem(888))
	require.Error(t, err)
}
