package formula

import (
	"reflect"
	"testing"
)

func TestToSQLLowersInternalQueryLikeCallsWithoutChangingPatterns(t *testing.T) {
	sql, args, err := ToSQLWithMapper(
		`__NCRM_QUERY_LIKE__(Body, "%Record.Link%") OR not (__NCRM_QUERY_LIKE__(HtmlValue, "prefix-%@example.com"))`,
		func(identifier string) string { return "`" + identifier + "`" },
	)
	if err != nil {
		t.Fatalf("ToSQLWithMapper() error = %v", err)
	}
	if want := "((`Body` LIKE ?) OR NOT((`HtmlValue` LIKE ?)))"; sql != want {
		t.Fatalf("ToSQLWithMapper() SQL = %q, want %q", sql, want)
	}
	wantArgs := []interface{}{"%Record.Link%", "prefix-%@example.com"}
	if !reflect.DeepEqual(args, wantArgs) {
		t.Fatalf("ToSQLWithMapper() args = %#v, want %#v", args, wantArgs)
	}
}
