mydb/internal/sqladapter/exql/columns_test.go

73 lines
1.4 KiB
Go
Raw Permalink Normal View History

2023-09-18 15:15:42 +08:00
package exql
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestColumns(t *testing.T) {
columns := JoinColumns(
&Column{Name: "id"},
&Column{Name: "customer"},
&Column{Name: "service_id"},
&Column{Name: "role.name"},
&Column{Name: "role.id"},
)
s, err := columns.Compile(defaultTemplate)
assert.NoError(t, err)
assert.Equal(t, `"id", "customer", "service_id", "role"."name", "role"."id"`, s)
}
func BenchmarkJoinColumns(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = JoinColumns(
&Column{Name: "a"},
&Column{Name: "b"},
&Column{Name: "c"},
)
}
}
func BenchmarkColumnsHash(b *testing.B) {
c := JoinColumns(
&Column{Name: "id"},
&Column{Name: "customer"},
&Column{Name: "service_id"},
&Column{Name: "role.name"},
&Column{Name: "role.id"},
)
b.ResetTimer()
for i := 0; i < b.N; i++ {
c.Hash()
}
}
func BenchmarkColumnsCompile(b *testing.B) {
c := JoinColumns(
&Column{Name: "id"},
&Column{Name: "customer"},
&Column{Name: "service_id"},
&Column{Name: "role.name"},
&Column{Name: "role.id"},
)
b.ResetTimer()
for i := 0; i < b.N; i++ {
_, _ = c.Compile(defaultTemplate)
}
}
func BenchmarkColumnsCompileNoCache(b *testing.B) {
for i := 0; i < b.N; i++ {
c := JoinColumns(
&Column{Name: "id"},
&Column{Name: "customer"},
&Column{Name: "service_id"},
&Column{Name: "role.name"},
&Column{Name: "role.id"},
)
_, _ = c.Compile(defaultTemplate)
}
}