| 53 | } |
| 54 | |
| 55 | func TestCaseWithNoVal(t *testing.T) { |
| 56 | caseStmt := Case(). |
| 57 | When(Eq{"x": 0}, "x is zero"). |
| 58 | When(Expr("x > ?", 1), Expr("CONCAT('x is greater than ', ?)", 2)) |
| 59 | |
| 60 | qb := Select().Column(caseStmt).From("table") |
| 61 | sql, args, err := qb.ToSql() |
| 62 | |
| 63 | assert.NoError(t, err) |
| 64 | |
| 65 | expectedSql := "SELECT CASE " + |
| 66 | "WHEN x = ? THEN x is zero " + |
| 67 | "WHEN x > ? THEN CONCAT('x is greater than ', ?) " + |
| 68 | "END " + |
| 69 | "FROM table" |
| 70 | |
| 71 | assert.Equal(t, expectedSql, sql) |
| 72 | |
| 73 | expectedArgs := []interface{}{0, 1, 2} |
| 74 | assert.Equal(t, expectedArgs, args) |
| 75 | } |
| 76 | |
| 77 | func TestCaseWithExpr(t *testing.T) { |
| 78 | caseStmt := Case(Expr("x = ?", true)). |