From 26a7f0c6c350024585194fa4e1123d4d3a088bb8 Mon Sep 17 00:00:00 2001 From: DrWrong Date: Wed, 20 Jun 2018 10:46:51 +0800 Subject: [PATCH] Add test case --- statement_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/statement_test.go b/statement_test.go index 8a7667f5..440281b2 100644 --- a/statement_test.go +++ b/statement_test.go @@ -203,3 +203,37 @@ func TestDistinctAndCols(t *testing.T) { assert.EqualValues(t, 1, len(names)) assert.EqualValues(t, "test", names[0]) } + +func TestUpdateIgnoreOnlyFromDBFields(t *testing.T) { + type TestOnlyFromDBField struct { + Key int64 `xorm:"PK"` + OnlyFromDBField string `xorm:"<-"` + OnlyToDBField string `xorm:"->"` + IngoreField string `xorm:"-"` + } + + assertGetRecord := func() *TestOnlyFromDBField { + var record TestOnlyFromDBField + has, err := testEngine.Where("key = ?", 1).Get(&record) + assert.NoError(t, err) + assert.EqualValues(t, true, has) + assert.EqualValues(t, "", record.OnlyFromDBField) + return &record + + } + assert.NoError(t, prepareEngine()) + assertSync(t, new(TestOnlyFromDBField)) + + _, err := testEngine.Insert(&TestOnlyFromDBField{ + Key: 1, + OnlyFromDBField: "a", + OnlyToDBField: "b", + IngoreField: "c", + }) + assert.NoError(t, err) + + record := assertGetRecord() + record.OnlyFromDBField = "test" + testEngine.Update(record) + assertGetRecord() +}