package config import ( "fmt" "github.com/stretchr/testify/assert" "testing" "time" ) func TestTask_GetSql(t *testing.T) { task := Task{ Sql: "select * from order", Elt: "create_time between {begin} and {end} and o.order_number > {last}", Timestamp: true, Order: " ", } begin, _ := time.Parse("2006-01-02 15:04:05", "2023-01-01 00:00:00") end := begin.Add(time.Hour * 24) sql := task.GetSql(map[string]interface{}{"begin": begin, "end": end, "last": 0}) assert.Equal(t, fmt.Sprintf("select * from order where create_time between %d and %d and o.order_number > 0", begin.Unix(), end.Unix()), sql) } func TestTask_GetSql_OrderBy(t *testing.T) { task := Task{ Sql: "select * from order", Elt: "create_time between '{begin}' and '{end}'", Timestamp: false, Order: "create_time", } begin, _ := time.Parse("2006-01-02 15:04:05", "2023-01-01 00:00:00") end := begin.Add(time.Hour * 24) sql := task.GetSql(map[string]interface{}{"begin": begin, "end": end}) assert.Equal(t, fmt.Sprintf("select * from order where create_time between '%s' and '%s' order by create_time", begin.Format("2006-01-02 15:04:05"), end.Format("2006-01-02 15:04:05")), sql) }