session_raw_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright 2017 The Xorm Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. package xorm
  5. import (
  6. "strconv"
  7. "testing"
  8. "time"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestQueryString(t *testing.T) {
  12. assert.NoError(t, prepareEngine())
  13. type GetVar struct {
  14. Id int64 `xorm:"autoincr pk"`
  15. Msg string `xorm:"varchar(255)"`
  16. Age int
  17. Money float32
  18. Created time.Time `xorm:"created"`
  19. }
  20. assert.NoError(t, testEngine.Sync2(new(GetVar)))
  21. var data = GetVar{
  22. Msg: "hi",
  23. Age: 28,
  24. Money: 1.5,
  25. }
  26. _, err := testEngine.InsertOne(data)
  27. assert.NoError(t, err)
  28. records, err := testEngine.QueryString("select * from get_var")
  29. assert.NoError(t, err)
  30. assert.Equal(t, 1, len(records))
  31. assert.Equal(t, 5, len(records[0]))
  32. assert.Equal(t, "1", records[0]["id"])
  33. assert.Equal(t, "hi", records[0]["msg"])
  34. assert.Equal(t, "28", records[0]["age"])
  35. assert.Equal(t, "1.5", records[0]["money"])
  36. }
  37. func TestQuery(t *testing.T) {
  38. assert.NoError(t, prepareEngine())
  39. type UserinfoQuery struct {
  40. Uid int
  41. Name string
  42. }
  43. assert.NoError(t, testEngine.Sync(new(UserinfoQuery)))
  44. res, err := testEngine.Exec("INSERT INTO `userinfo_query` (uid, name) VALUES (?, ?)", 1, "user")
  45. assert.NoError(t, err)
  46. cnt, err := res.RowsAffected()
  47. assert.NoError(t, err)
  48. assert.EqualValues(t, 1, cnt)
  49. results, err := testEngine.Query("select * from userinfo_query")
  50. assert.NoError(t, err)
  51. assert.EqualValues(t, 1, len(results))
  52. id, err := strconv.Atoi(string(results[0]["uid"]))
  53. assert.NoError(t, err)
  54. assert.EqualValues(t, 1, id)
  55. assert.Equal(t, "user", string(results[0]["name"]))
  56. }