MCPcopy Create free account
hub / github.com/cockscomb/cel2sql / TestConvert

Function TestConvert

cel2sql_test.go:18–437  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestConvert(t *testing.T) {
19 env, err := cel.NewEnv(
20 cel.CustomTypeProvider(bq.NewTypeProvider(map[string]bigquery.Schema{
21 "trigrams": test.NewTrigramsTableMetadata().Schema,
22 "wikipedia": test.NewWikipediaTableMetadata().Schema,
23 })),
24 sqltypes.SQLTypeDeclarations,
25 cel.Declarations(
26 decls.NewVar("name", decls.String),
27 decls.NewVar("age", decls.Int),
28 decls.NewVar("adult", decls.Bool),
29 decls.NewVar("height", decls.Double),
30 decls.NewVar("string_list", decls.NewListType(decls.String)),
31 decls.NewVar("string_int_map", decls.NewMapType(decls.String, decls.Int)),
32 decls.NewVar("null_var", decls.Null),
33 decls.NewVar("birthday", sqltypes.Date),
34 decls.NewVar("fixed_time", sqltypes.Time),
35 decls.NewVar("scheduled_at", sqltypes.DateTime),
36 decls.NewVar("created_at", decls.Timestamp),
37 decls.NewVar("trigram", decls.NewObjectType("trigrams")),
38 decls.NewVar("page", decls.NewObjectType("wikipedia")),
39 ),
40 )
41 require.NoError(t, err)
42 type args struct {
43 source string
44 }
45 tests := []struct {
46 name string
47 args args
48 want string
49 wantErr bool
50 }{
51 {
52 name: "startsWith",
53 args: args{source: `name.startsWith("a")`},
54 want: "STARTS_WITH(`name`, \"a\")",
55 wantErr: false,
56 },
57 {
58 name: "endsWith",
59 args: args{source: `name.endsWith("z")`},
60 want: "ENDS_WITH(`name`, \"z\")",
61 wantErr: false,
62 },
63 {
64 name: "matches",
65 args: args{source: `name.matches("a+")`},
66 want: "REGEXP_CONTAINS(`name`, \"a+\")",
67 wantErr: false,
68 },
69 {
70 name: "contains",
71 args: args{source: `name.contains("abc")`},
72 want: "INSTR(`name`, \"abc\") != 0",
73 wantErr: false,
74 },
75 {

Callers

nothing calls this directly

Calls 4

NewTypeProviderFunction · 0.92
NewTrigramsTableMetadataFunction · 0.92
ConvertFunction · 0.92

Tested by

no test coverage detected