| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- // Copyright 2017 The Xorm Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package xorm
- import (
- "testing"
- "time"
- "github.com/stretchr/testify/assert"
- )
- func TestUpdateMap(t *testing.T) {
- assert.NoError(t, prepareEngine())
- type UpdateTable struct {
- Id int64
- Name string
- Age int
- }
- assert.NoError(t, testEngine.Sync2(new(UpdateTable)))
- var tb = UpdateTable{
- Name: "test",
- Age: 35,
- }
- _, err := testEngine.Insert(&tb)
- assert.NoError(t, err)
- cnt, err := testEngine.Table("update_table").Where("id = ?", tb.Id).Update(map[string]interface{}{
- "name": "test2",
- "age": 36,
- })
- assert.NoError(t, err)
- assert.EqualValues(t, 1, cnt)
- }
- func TestUpdateLimit(t *testing.T) {
- assert.NoError(t, prepareEngine())
- type UpdateTable struct {
- Id int64
- Name string
- Age int
- }
- assert.NoError(t, testEngine.Sync2(new(UpdateTable)))
- var tb = UpdateTable{
- Name: "test1",
- Age: 35,
- }
- cnt, err := testEngine.Insert(&tb)
- assert.NoError(t, err)
- assert.EqualValues(t, 1, cnt)
- tb.Name = "test2"
- tb.Id = 0
- cnt, err = testEngine.Insert(&tb)
- assert.NoError(t, err)
- assert.EqualValues(t, 1, cnt)
- cnt, err = testEngine.OrderBy("name desc").Limit(1).Update(&UpdateTable{
- Age: 30,
- })
- assert.NoError(t, err)
- assert.EqualValues(t, 1, cnt)
- var uts []UpdateTable
- err = testEngine.Find(&uts)
- assert.NoError(t, err)
- assert.EqualValues(t, 2, len(uts))
- assert.EqualValues(t, 35, uts[0].Age)
- assert.EqualValues(t, 30, uts[1].Age)
- }
- func TestUpdate(t *testing.T) {
- assert.NoError(t, prepareEngine())
- type UpdateTable2 struct {
- Id int64 `xorm:"autoincr pk"`
- Msg string `xorm:"varchar(255)"`
- Created time.Time `xorm:"datetime updated"`
- }
- assert.NoError(t, testEngine.Sync2(new(UpdateTable2)))
- data := UpdateTable2{Msg: "test1"}
- cnt, err := testEngine.Insert(&data)
- assert.NoError(t, err)
- assert.EqualValues(t, 1, cnt)
- cnt, err = testEngine.Where("id = ?", data.Id).Update(&UpdateTable2{
- Msg: "test2",
- })
- assert.NoError(t, err)
- assert.EqualValues(t, 1, cnt)
- }
|