From 607b473d7c906af2c09545035f4a0bfa465064d0 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 8 Apr 2018 17:32:28 +0800 Subject: [PATCH] more tests --- session_find_test.go | 32 ++++++++++++++++++++++++++++++++ statement.go | 8 +++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/session_find_test.go b/session_find_test.go index a3494fa8..04fdb030 100644 --- a/session_find_test.go +++ b/session_find_test.go @@ -162,6 +162,38 @@ func TestFind3(t *testing.T) { Join("INNER", teamUser, "`team_user`.team_id=`team`.id"). Find(&teams) assert.NoError(t, err) + + teams = make([]Team, 0) + err = testEngine.Cols("`team`.id"). + Where("`team_user`.org_id=?", 1). + And("`team_user`.uid=?", 2). + Join("INNER", []interface{}{teamUser}, "`team_user`.team_id=`team`.id"). + Find(&teams) + assert.NoError(t, err) + + teams = make([]Team, 0) + err = testEngine.Cols("`team`.id"). + Where("`tu`.org_id=?", 1). + And("`tu`.uid=?", 2). + Join("INNER", []string{"team_user", "tu"}, "`tu`.team_id=`team`.id"). + Find(&teams) + assert.NoError(t, err) + + teams = make([]Team, 0) + err = testEngine.Cols("`team`.id"). + Where("`tu`.org_id=?", 1). + And("`tu`.uid=?", 2). + Join("INNER", []interface{}{"team_user", "tu"}, "`tu`.team_id=`team`.id"). + Find(&teams) + assert.NoError(t, err) + + teams = make([]Team, 0) + err = testEngine.Cols("`team`.id"). + Where("`tu`.org_id=?", 1). + And("`tu`.uid=?", 2). + Join("INNER", []interface{}{teamUser, "tu"}, "`tu`.team_id=`team`.id"). + Find(&teams) + assert.NoError(t, err) } func TestFindMap(t *testing.T) { diff --git a/statement.go b/statement.go index adf3e2fb..02d73559 100644 --- a/statement.go +++ b/statement.go @@ -772,7 +772,13 @@ func (statement *Statement) Join(joinOP string, tablename interface{}, condition case TableName: table = f.(TableName).TableName() default: - // FIXME: error + v := rValue(f) + t := v.Type() + if t.Kind() == reflect.Struct { + fmt.Fprintf(&buf, statement.Engine.tbName(v)) + } else { + fmt.Fprintf(&buf, statement.Engine.Quote(fmt.Sprintf("%v", f))) + } } } if l > 1 {