fork github.com/doug-martin

This commit is contained in:
2025-03-22 23:02:05 +08:00
commit f14642a736
131 changed files with 34555 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
package exp_test
import (
"testing"
"git.fsdpf.net/go/db/v2/exp"
"github.com/stretchr/testify/suite"
)
type windowExpressionTest struct {
suite.Suite
}
func TestWindowExpressionSuite(t *testing.T) {
suite.Run(t, new(windowExpressionTest))
}
func (wet *windowExpressionTest) TestClone() {
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, nil, nil)
w2 := w.Clone()
wet.Equal(w, w2)
}
func (wet *windowExpressionTest) TestExpression() {
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, nil, nil)
w2 := w.Expression()
wet.Equal(w, w2)
}
func (wet *windowExpressionTest) TestName() {
name := exp.NewIdentifierExpression("", "", "w")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, nil, nil)
wet.Equal(name, w.Name())
}
func (wet *windowExpressionTest) TestPartitionCols() {
cols := exp.NewColumnListExpression("a", "b")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, cols, nil)
wet.Equal(cols, w.PartitionCols())
wet.Equal(cols, w.Clone().(exp.WindowExpression).PartitionCols())
}
func (wet *windowExpressionTest) TestOrderCols() {
cols := exp.NewColumnListExpression("a", "b")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, nil, cols)
wet.Equal(cols, w.OrderCols())
wet.Equal(cols, w.Clone().(exp.WindowExpression).OrderCols())
}
func (wet *windowExpressionTest) TestPartitionBy() {
cols := exp.NewColumnListExpression("a", "b")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, nil, nil).PartitionBy("a", "b")
wet.Equal(cols, w.PartitionCols())
}
func (wet *windowExpressionTest) TestOrderBy() {
cols := exp.NewColumnListExpression("a", "b")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), nil, nil, nil).OrderBy("a", "b")
wet.Equal(cols, w.OrderCols())
}
func (wet *windowExpressionTest) TestParent() {
parent := exp.NewIdentifierExpression("", "", "w1")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), parent, nil, nil)
wet.Equal(parent, w.Parent())
}
func (wet *windowExpressionTest) TestInherit() {
parent := exp.NewIdentifierExpression("", "", "w1")
w := exp.NewWindowExpression(exp.NewIdentifierExpression("", "", "w"), parent, nil, nil)
wet.Equal(parent, w.Parent())
w = w.Inherit("w2")
wet.Equal(exp.NewIdentifierExpression("", "", "w2"), w.Parent())
}