package changefeed

import (
	"testing"

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

func TestToDataflowS3DateSeparator(t *testing.T) {
	tests := map[string]struct {
		input    changefeedopenbp.S3DataFormat_DateSeparator
		expected string
	}{
		"unspecified defaults to none": {
			input:    changefeedopenbp.S3DataFormat_DATE_SEPARATOR_UNSPECIFIED,
			expected: "none",
		},
		"none": {
			input:    changefeedopenbp.S3DataFormat_NONE,
			expected: "none",
		},
		"year": {
			input:    changefeedopenbp.S3DataFormat_YEAR,
			expected: "year",
		},
		"month": {
			input:    changefeedopenbp.S3DataFormat_MONTH,
			expected: "month",
		},
		"day": {
			input:    changefeedopenbp.S3DataFormat_DAY,
			expected: "day",
		},
		"unknown defaults to none": {
			input:    changefeedopenbp.S3DataFormat_DateSeparator(99),
			expected: "none",
		},
	}

	for name, tc := range tests {
		t.Run(name, func(t *testing.T) {
			require.Equal(t, tc.expected, toDataflowS3DateSeparator(tc.input))
		})
	}
}
