1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
// Copyright 2019-present Facebook Inc. All rights reserved.
// This source code is licensed under the Apache 2.0 license found
// in the LICENSE file in the root directory of this source tree.
package entql
import (
"strconv"
"testing"
"github.com/stretchr/testify/assert"
)
func TestFielder(t *testing.T) {
tests := []struct {
input Fielder
expected string
}{
{
input: StringEQ("value"),
expected: `field == "value"`,
},
{
input: StringOr(
StringEQ("a"),
StringEQ("b"),
StringEQ("c"),
),
expected: `(field == "a" || field == "b" || field == "c")`,
},
{
input: StringAnd(
StringEQ("a"),
StringNot(
StringOr(
StringEQ("b"),
StringGT("c"),
StringNEQ("d"),
),
),
),
expected: `field == "a" && !((field == "b" || field > "c" || field != "d"))`,
},
{
input: IntGT(1),
expected: `field > 1`,
},
{
input: IntGTE(1),
expected: `field >= 1`,
},
{
input: IntLT(1),
expected: `field < 1`,
},
{
input: IntLTE(1),
expected: `field <= 1`,
},
{
input: IntGT(1),
expected: `field > 1`,
},
{
input: IntNot(IntGTE(1)),
expected: `!(field >= 1)`,
},
{
input: BoolNot(
BoolOr(
BoolEQ(true),
BoolEQ(false),
),
),
expected: `!(field == true || field == false)`,
},
}
for i := range tests {
t.Run(strconv.Itoa(i), func(t *testing.T) {
p := tests[i].input.Field("field")
assert.Equal(t, tests[i].expected, p.String())
})
}
}
|