Expose internal RawBool type

This commit is contained in:
go-jet 2023-04-17 12:46:11 +02:00
parent a428981a2d
commit 0a7e0b5392
7 changed files with 17 additions and 0 deletions

View file

@ -445,6 +445,11 @@ func RawWithParent(raw string, parent ...Expression) Expression {
return rawExp return rawExp
} }
// RawBool helper that for raw string boolean expressions
func RawBool(raw string, namedArgs ...map[string]interface{}) BoolExpression {
return BoolExp(Raw(raw, namedArgs...))
}
// RawInt helper that for integer expressions // RawInt helper that for integer expressions
func RawInt(raw string, namedArgs ...map[string]interface{}) IntegerExpression { func RawInt(raw string, namedArgs ...map[string]interface{}) IntegerExpression {
return IntExp(Raw(raw, namedArgs...)) return IntExp(Raw(raw, namedArgs...))

View file

@ -79,6 +79,7 @@ type RawArgs = map[string]interface{}
var ( var (
Raw = jet.Raw Raw = jet.Raw
RawBool = jet.RawBool
RawInt = jet.RawInt RawInt = jet.RawInt
RawFloat = jet.RawFloat RawFloat = jet.RawFloat
RawString = jet.RawString RawString = jet.RawString

View file

@ -47,6 +47,9 @@ func TestRawInvalidArguments(t *testing.T) {
} }
func TestRawType(t *testing.T) { func TestRawType(t *testing.T) {
assertSerialize(t, RawBool("table.colInt < :float", RawArgs{":float": 11.22}).IS_FALSE(),
"(table.colInt < ?) IS FALSE", 11.22)
assertSerialize(t, RawFloat("table.colInt + &float", RawArgs{"&float": 11.22}).EQ(Float(3.14)), assertSerialize(t, RawFloat("table.colInt + &float", RawArgs{"&float": 11.22}).EQ(Float(3.14)),
"((table.colInt + ?) = ?)", 11.22, 3.14) "((table.colInt + ?) = ?)", 11.22, 3.14)
assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")), assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")),

View file

@ -90,6 +90,7 @@ type RawArgs = map[string]interface{}
var ( var (
Raw = jet.Raw Raw = jet.Raw
RawBool = jet.RawBool
RawInt = jet.RawInt RawInt = jet.RawInt
RawFloat = jet.RawFloat RawFloat = jet.RawFloat
RawString = jet.RawString RawString = jet.RawString

View file

@ -57,6 +57,9 @@ func TestRawInvalidArguments(t *testing.T) {
} }
func TestRawHelperMethods(t *testing.T) { func TestRawHelperMethods(t *testing.T) {
assertSerialize(t, RawBool("table.colInt < :float", RawArgs{":float": 11.22}).IS_FALSE(),
"(table.colInt < $1) IS FALSE", 11.22)
assertSerialize(t, RawFloat("table.colInt + :float", RawArgs{":float": 11.22}).EQ(Float(3.14)), assertSerialize(t, RawFloat("table.colInt + :float", RawArgs{":float": 11.22}).EQ(Float(3.14)),
"((table.colInt + $1) = $2)", 11.22, 3.14) "((table.colInt + $1) = $2)", 11.22, 3.14)
assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")), assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")),

View file

@ -82,6 +82,7 @@ type RawArgs = map[string]interface{}
var ( var (
Raw = jet.Raw Raw = jet.Raw
RawBool = jet.RawBool
RawInt = jet.RawInt RawInt = jet.RawInt
RawFloat = jet.RawFloat RawFloat = jet.RawFloat
RawString = jet.RawString RawString = jet.RawString

View file

@ -45,6 +45,9 @@ func TestRawInvalidArguments(t *testing.T) {
} }
func TestRawType(t *testing.T) { func TestRawType(t *testing.T) {
assertSerialize(t, RawBool("table.colInt < :float", RawArgs{":float": 11.22}).IS_FALSE(),
"(table.colInt < ?) IS FALSE", 11.22)
assertSerialize(t, RawFloat("table.colInt + &float", RawArgs{"&float": 11.22}).EQ(Float(3.14)), assertSerialize(t, RawFloat("table.colInt + &float", RawArgs{"&float": 11.22}).EQ(Float(3.14)),
"((table.colInt + ?) = ?)", 11.22, 3.14) "((table.colInt + ?) = ?)", 11.22, 3.14)
assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")), assertSerialize(t, RawString("table.colStr || str", RawArgs{"str": "doe"}).EQ(String("john doe")),