From 68cd65f70d69c3e854b2653850f63ba1b175e1a6 Mon Sep 17 00:00:00 2001 From: what Date: Fri, 21 Aug 2026 08:56:37 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E8=A1=A5=E5=85=85=20Condition.ToSql=20?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=88=B0=E8=A1=A8=E8=BE=BE=E5=BC=8F=E6=A0=91?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E6=B5=8B=E8=AF=95=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- condition_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 condition_test.go diff --git a/condition_test.go b/condition_test.go new file mode 100644 index 0000000..4d7fcda --- /dev/null +++ b/condition_test.go @@ -0,0 +1,41 @@ +package condition_test + +import ( + "testing" + + "git.fsdpf.net/go/condition" + "git.fsdpf.net/go/db" + "github.com/stretchr/testify/suite" + + _ "git.fsdpf.net/go/db/dialect/sqlite3" + db_eng "git.fsdpf.net/go/db/engine" + "git.fsdpf.net/go/db/sqlgen" +) + +type conditionTest struct { + suite.Suite + db *db.Database + esg sqlgen.ExpressionSQLGenerator +} + +func TestConditionSuite(t *testing.T) { + suite.Run(t, new(conditionTest)) +} + +func (t *conditionTest) SetupSuite() { + database := db_eng.Open(map[string]db_eng.DBConfig{ + "condition-test": db_eng.NewDBConfig("sqlite3", db_eng.WithSQLiteFile(":memory:")), + }) + t.db = database.Connection("condition-test") +} + +func (t *conditionTest) TestToSql() { + cond := condition.New(condition.Describe("测试")) + cond.SetExpr(condition.NewExpr("User", "name", condition.Operator(condition.LIKE), condition.Token("张三", condition.STRING))). + SetExpr(condition.NewExpr("User", "age", condition.Token("18", condition.STRING))). + SetExpr(condition.NewExpr("User", "attr->'birthday'", condition.Token("18", condition.STRING))). + SetExpr(condition.NewExpr("User", "roles", condition.FieldSqlFn("json_contains", ""), condition.Token("admin", condition.STRING))) + // SetExpr(condition.NewExpr("User", "roles", condition.FieldSqlFn("json_contains", ""), condition.Token("admin", condition.STRING))) + + t.T().Log(t.db.From(db.T("users").As("User")).Where(cond.ToSql(nil)).ToSQL()) +}