package executor

import "testing"

func TestIsTiDBVersionString(t *testing.T) {
	tests := []struct {
		version string
		want    bool
	}{
		{version: "8.0.11-TiDB-v8.4.0-alpha", want: true},
		{version: "5.7.25-TiDB-v6.5.0", want: true},
		{version: "8.0.35", want: false},
		{version: "", want: false},
	}

	for _, tt := range tests {
		if got := isTiDBVersionString(tt.version); got != tt.want {
			t.Fatalf("isTiDBVersionString(%q) = %v, want %v", tt.version, got, tt.want)
		}
	}
}

func TestBuildPartitionAttributeSQL(t *testing.T) {
	got := buildPartitionAttributeSQL("chat_test", "chat_list_0", "p0", tidbPartitionAttributeValue)
	want := "ALTER TABLE `chat_test`.`chat_list_0` PARTITION `p0` ATTRIBUTES=\"region_policy=exclusive\""
	if got != want {
		t.Fatalf("buildPartitionAttributeSQL() = %q, want %q", got, want)
	}
}
