xorm_test.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  1. package xorm
  2. import (
  3. "fmt"
  4. "log"
  5. "reflect"
  6. "testing"
  7. "time"
  8. "github.com/xormplus/xorm"
  9. _ "github.com/lib/pq"
  10. // "gopkg.in/flosch/pongo2.v3"
  11. )
  12. type Article struct {
  13. Id int `xorm:"not null pk autoincr unique INTEGER"`
  14. Content string `xorm:"not null TEXT"`
  15. Title string `xorm:"not null VARCHAR(255)"`
  16. Categorysubid int `xorm:"not null INTEGER"`
  17. Remark string `xorm:"not null VARCHAR(2555)"`
  18. Userid int `xorm:"not null INTEGER"`
  19. Viewcount int `xorm:"not null default 0 INTEGER"`
  20. Replycount int `xorm:"not null default 0 INTEGER"`
  21. Tags string `xorm:"not null VARCHAR(300)"`
  22. Createdatetime JSONTime `xorm:"not null default 'now()' DATETIME"`
  23. Isdraft int `xorm:"SMALLINT"`
  24. Lastupdatetime time.Time `xorm:"not null default 'now()' DATETIME"`
  25. }
  26. type Category struct {
  27. Id int `xorm:"not null pk autoincr unique INTEGER"`
  28. Name string `xorm:"not null VARCHAR(200)"`
  29. Counts int `xorm:"not null default 0 INTEGER"`
  30. Orders int `xorm:"not null default 0 INTEGER"`
  31. Createtime time.Time `xorm:"not null default 'now()' created DATETIME"`
  32. Pid int `xorm:"not null default 0 INTEGER"`
  33. Lastupdatetime time.Time `xorm:"not null default 'now()' updated DATETIME"`
  34. Status int `xorm:"not null default 1 SMALLINT"`
  35. }
  36. type JSONTime time.Time
  37. func (t JSONTime) MarshalJSON() ([]byte, error) {
  38. //do your serializing here
  39. stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("2006/01/08 15:04:05"))
  40. return []byte(stamp), nil
  41. }
  42. var db *xorm.Engine
  43. func Test_InitDB(t *testing.T) {
  44. var err error
  45. db, err = xorm.NewPostgreSQL("postgres://postgres:root@localhost:5432/mblog?sslmode=disable")
  46. if err != nil {
  47. t.Fatal(err)
  48. }
  49. err = db.SetSqlMapRootDir("./sql/oracle").InitSqlMap()
  50. if err != nil {
  51. t.Fatal(err)
  52. }
  53. err = db.SetSqlTemplateRootDir("./sql/oracle").InitSqlTemplate(xorm.SqlTemplateOptions{Extension: ".stpl"})
  54. if err != nil {
  55. t.Fatal(err)
  56. }
  57. err = db.StartFSWatcher()
  58. if err != nil {
  59. t.Fatal(err)
  60. }
  61. db.ShowSQL(true)
  62. log.Println(db)
  63. // db.NewSession().SqlMapClient().Execute()
  64. }
  65. func Test_Get_Struct(t *testing.T) {
  66. var article Article
  67. has, err := db.Id(2).Get(&article)
  68. if err != nil {
  69. t.Fatal(err)
  70. }
  71. if !has {
  72. t.Log("[Test_Get_Struct]->rows: not exist\n")
  73. }
  74. t.Log("[Test_Get_Struct]->rows:\n", article)
  75. }
  76. func Test_GetFirst_Json(t *testing.T) {
  77. var article Article
  78. has, rows, err := db.Id(2).GetFirst(&article).Json()
  79. if err != nil {
  80. t.Fatal(err)
  81. }
  82. if !has {
  83. t.Log("[Test_GetFirst_Json]->rows: not exist\n")
  84. }
  85. t.Log("[Test_GetFirst_Json]->rows:\n" + rows)
  86. }
  87. func Test_GetFirst_Xml(t *testing.T) {
  88. var article Article
  89. has, rows, err := db.Where("userid =?", 2).GetFirst(&article).Xml()
  90. if err != nil {
  91. t.Fatal(err)
  92. }
  93. if !has {
  94. t.Log("[Test_GetFirst_Xml]->rows: not exist\n")
  95. }
  96. t.Log("[Test_GetFirst_Xml]->rows:\n" + rows)
  97. }
  98. func Test_GetFirst_XmlIndent(t *testing.T) {
  99. var article Article
  100. has, rows, err := db.Where("userid =?", 2).GetFirst(&article).XmlIndent("", " ", "article")
  101. if err != nil {
  102. t.Fatal(err)
  103. }
  104. if !has {
  105. t.Log("[Test_GetFirst_XmlIndent]->rows: not exist\n")
  106. }
  107. t.Log("[Test_GetFirst_XmlIndent]->rows:\n" + rows)
  108. }
  109. func Test_Search(t *testing.T) {
  110. var article []Article
  111. result := db.Sql("select id,title,createdatetime,content from article where id = ?", 25).Search(&article)
  112. if result.Error != nil {
  113. t.Fatal(result.Error)
  114. }
  115. t.Log("[Test_Find]->article[0].Id:\n", article[0].Id)
  116. t.Log("[Test_Find]->article[0].Content:\n", article[0].Content)
  117. t.Log("[Test_Find]->article[0].Title:\n", article[0].Title)
  118. t.Log("[Test_Find]->article[0].Categorysubid:\n", article[0].Categorysubid)
  119. t.Log("[Test_Find]->article[0].Createdatetime:\n", article[0].Createdatetime)
  120. t.Log("[Test_Find]->article[0].Isdraft:\n", article[0].Isdraft)
  121. t.Log("[Test_Find]->article[0].Lastupdatetime:\n", article[0].Lastupdatetime)
  122. t.Log("[Test_Find]->article[0].Remark:\n", article[0].Remark)
  123. t.Log("[Test_Find]->article[0].Replycount:\n", article[0].Replycount)
  124. t.Log("[Test_Find]->article[0].Tags:\n", article[0].Tags)
  125. t.Log("[Test_Find]->article[0].Userid:\n", article[0].Userid)
  126. t.Log("[Test_Find]->article[0].Viewcount:\n", article[0].Viewcount)
  127. t.Log("[Test_Find]-> result.Result:\n", result.Result)
  128. resultJson, err := result.Json()
  129. if err != nil {
  130. t.Fatal(err)
  131. }
  132. t.Log("[Test_Search]-> result.Json():\n", resultJson)
  133. }
  134. func Test_Query_Json(t *testing.T) {
  135. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?", 27).Query().Json()
  136. if err != nil {
  137. t.Fatal(err)
  138. }
  139. t.Log("[Test_Query_Json]->rows:\n" + rows)
  140. }
  141. func Test_Query_Result(t *testing.T) {
  142. rows := db.Sql("select id,title,createdatetime,content from article where id = ?", 27).Query()
  143. if rows.Error != nil {
  144. t.Fatal(rows.Error)
  145. }
  146. t.Log("[Test_Query_Result]->rows[0][\"id\"]:\n", rows.Results[0]["id"])
  147. t.Log("[Test_Query_Result]->reflect.TypeOf(rows.Result[0][\"id\"]):\n", reflect.TypeOf(rows.Results[0]["id"]))
  148. t.Log("[Test_Query_Result]->rows[0][\"title\"]:\n", rows.Results[0]["title"])
  149. t.Log("[Test_Query_Result]->reflect.TypeOf(rows.Result[0][\"title\"]):\n", reflect.TypeOf(rows.Results[0]["title"]))
  150. t.Log("[Test_Query_Result]->rows[0][\"createdatetime\"]:\n", rows.Results[0]["createdatetime"])
  151. t.Log("[Test_Query_Result]->reflect.TypeOf(rows.Result[0][\"createdatetime\"]):\n", reflect.TypeOf(rows.Results[0]["createdatetime"]))
  152. }
  153. func Test_Query_Xml(t *testing.T) {
  154. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?", 27).Query().Xml()
  155. if err != nil {
  156. t.Fatal(err)
  157. }
  158. t.Log("[Test_Query_Xml]->rows:\n" + rows)
  159. }
  160. func Test_Query_XmlIndent(t *testing.T) {
  161. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?", 33).Query().XmlIndent("", " ", "article")
  162. if err != nil {
  163. t.Fatal(err)
  164. }
  165. t.Log("[Test_Query_XmlIndent]->rows:\n" + rows)
  166. }
  167. func Test_QueryWithDateFormat_Json(t *testing.T) {
  168. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?", 33).QueryWithDateFormat("20060102").Json()
  169. if err != nil {
  170. t.Fatal(err)
  171. }
  172. t.Log("[Test_QueryWithDateFormat_Json]->rows:\n" + rows)
  173. }
  174. func Test_QueryWithDateFormat_Xml(t *testing.T) {
  175. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?", 33).QueryWithDateFormat("20060102").Xml()
  176. if err != nil {
  177. t.Fatal(err)
  178. }
  179. t.Log("[Test_QueryWithDateFormat_Xml]->rows:\n" + rows)
  180. }
  181. func Test_QueryWithDateFormat_XmlIndent(t *testing.T) {
  182. rows, err := db.Sql("select id,title,createdatetime,content from article where id in (?,?)", 27, 33).QueryWithDateFormat("20060102").XmlIndent("", " ", "article")
  183. if err != nil {
  184. t.Fatal(err)
  185. }
  186. t.Log("[Test_QueryWithDateFormat_XmlIndent]->rows:\n" + rows)
  187. }
  188. func Test_QueryByParamMap_Json(t *testing.T) {
  189. paramMap := map[string]interface{}{"id": 32, "userid": 1}
  190. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?id and userid=?userid", &paramMap).Query().Json()
  191. if err != nil {
  192. t.Fatal(err)
  193. }
  194. t.Log("[Test_QueryByParamMap_Json]->rows:\n" + rows)
  195. }
  196. func Test_QueryByParamMap_Xml(t *testing.T) {
  197. paramMap := map[string]interface{}{"id": 6, "userid": 1}
  198. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?id and userid=?userid", &paramMap).Query().Xml()
  199. if err != nil {
  200. t.Fatal(err)
  201. }
  202. t.Log("[Test_QueryByParamMap_Xml]->rows:\n" + rows)
  203. }
  204. func Test_QueryByParamMap_XmlIndent(t *testing.T) {
  205. paramMap := map[string]interface{}{"id": 6, "userid": 1}
  206. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?id and userid=?userid", &paramMap).Query().XmlIndent("", " ", "article")
  207. if err != nil {
  208. t.Fatal(err)
  209. }
  210. t.Log("[Test_QueryByParamMap_XmlIndent]->rows:\n" + rows)
  211. }
  212. func Test_QueryByParamMapWithDateFormat_XmlIndent(t *testing.T) {
  213. paramMap := map[string]interface{}{"id": 6, "userid": 1}
  214. rows, err := db.Sql("select id,title,createdatetime,content from article where id = ?id and userid=?userid", &paramMap).QueryWithDateFormat("2006/01/02").XmlIndent("", " ", "article")
  215. if err != nil {
  216. t.Fatal(err)
  217. }
  218. t.Log("[Test_QueryByParamMapWithDateFormat_XmlIndent]->rows:\n" + rows)
  219. }
  220. func Test_SqlMapClient_QueryByParamMap_Json(t *testing.T) {
  221. paramMap := map[string]interface{}{"1": 2, "2": 5}
  222. rows, err := db.SqlMapClient("selectAllArticle", &paramMap).Query().Json()
  223. if err != nil {
  224. t.Fatal(err)
  225. }
  226. t.Log("[Test_SqlMapClient_QueryByParamMap_Json]->rows:\n" + rows)
  227. }
  228. func Test_SqlMapClient_QueryByParamMapWithDateFormat_Json(t *testing.T) {
  229. paramMap := map[string]interface{}{"1": 2, "2": 5}
  230. rows, err := db.SqlMapClient("selectAllArticle", &paramMap).QueryWithDateFormat("2006-01-02 15:04").Json()
  231. if err != nil {
  232. t.Fatal(err)
  233. }
  234. t.Log("[Test_SqlMapClient_QueryByParamMapWithDateFormat_Json]->rows:\n" + rows)
  235. }
  236. func Test_SqlMapClient_QueryByParamMap_Xml(t *testing.T) {
  237. paramMap := map[string]interface{}{"1": 2, "2": 5}
  238. rows, err := db.SqlMapClient("selectAllArticle", &paramMap).Query().Xml()
  239. if err != nil {
  240. t.Fatal(err)
  241. }
  242. t.Log("[Test_SqlMapClient_QueryByParamMap_Xml]->rows:\n" + rows)
  243. }
  244. func Test_SqlMapClient_QueryByParamMapWithDateFormat_Xml(t *testing.T) {
  245. paramMap := map[string]interface{}{"1": 2, "2": 5}
  246. rows, err := db.SqlMapClient("selectAllArticle", &paramMap).QueryWithDateFormat("2006-01-02 15:04").Xml()
  247. if err != nil {
  248. t.Fatal(err)
  249. }
  250. t.Log("[Test_SqlMapClient_QueryByParamMapWithDateFormat_Xml]->rows:\n" + rows)
  251. }
  252. func Test_SqlMapClient_QueryByParamMap_XmlIndent(t *testing.T) {
  253. paramMap := map[string]interface{}{"1": 2, "2": 5}
  254. rows, err := db.SqlMapClient("selectAllArticle", &paramMap).Query().XmlIndent("", " ", "article")
  255. if err != nil {
  256. t.Fatal(err)
  257. }
  258. t.Log("[Test_SqlMapClient_QueryByParamMap_XmlIndent]->rows:\n" + rows)
  259. }
  260. func Test_SqlMapClient_QueryByParamMapWithDateFormat_XmlIndent(t *testing.T) {
  261. paramMap := map[string]interface{}{"1": 2, "2": 5}
  262. rows, err := db.SqlMapClient("selectAllArticle", &paramMap).QueryWithDateFormat("2006-01-02 15:04").XmlIndent("", " ", "article")
  263. if err != nil {
  264. t.Fatal(err)
  265. }
  266. t.Log("[Test_SqlMapClient_QueryByParamMapWithDateFormat_XmlIndent]->rows:\n" + rows)
  267. }
  268. func Test_SqlTemplateClient_QueryByParamMap_Json(t *testing.T) {
  269. paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 1}
  270. rows, err := db.SqlTemplateClient("select.example.stpl", &paramMap).Query().Json()
  271. if err != nil {
  272. t.Fatal(err)
  273. }
  274. t.Log("[Test_SqlTemplateClient_QueryByParamMap_Json]->rows:\n" + rows)
  275. }
  276. func Test_SqlTemplateClient_QueryByParamMapWithDateFormat_Json(t *testing.T) {
  277. paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 1}
  278. rows, err := db.SqlTemplateClient("select.example.stpl", &paramMap).QueryWithDateFormat("01/02/2006").Json()
  279. if err != nil {
  280. t.Fatal(err)
  281. }
  282. t.Log("[Test_SqlTemplateClient_QueryByParamMapWithDateFormat_Json]->rows:\n" + rows)
  283. }
  284. func Test_SqlTemplateClient_QueryByParamMap_Xml(t *testing.T) {
  285. paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 2}
  286. rows, err := db.SqlTemplateClient("select.example.stpl", &paramMap).Query().Xml()
  287. if err != nil {
  288. t.Fatal(err)
  289. }
  290. t.Log("[Test_SqlTemplateClient_QueryByParamMap_Xml]->rows:\n" + rows)
  291. }
  292. func Test_SqlTemplateClient_QueryByParamMapWithDateFormat_Xml(t *testing.T) {
  293. paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 2}
  294. rows, err := db.SqlTemplateClient("select.example.stpl", &paramMap).QueryWithDateFormat("01/02/2006").Xml()
  295. if err != nil {
  296. t.Fatal(err)
  297. }
  298. t.Log("[Test_SqlTemplateClient_QueryByParamMapWithDateFormat_Xml]->rows:\n" + rows)
  299. }
  300. func Test_SqlTemplateClient_QueryByParamMap_XmlIndent(t *testing.T) {
  301. paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 2}
  302. rows, err := db.SqlTemplateClient("select.example.stpl", &paramMap).Query().XmlIndent("", " ", "article")
  303. if err != nil {
  304. t.Fatal(err)
  305. }
  306. t.Log("[Test_SqlTemplateClient_QueryByParamMap_XmlIndent]->rows:\n" + rows)
  307. }
  308. func Test_SqlTemplateClient_QueryByParamMapWithDateFormat_XmlIndent(t *testing.T) {
  309. paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 2}
  310. rows, err := db.SqlTemplateClient("select.example.stpl", &paramMap).QueryWithDateFormat("01/02/2006").XmlIndent("", " ", "article")
  311. if err != nil {
  312. t.Fatal(err)
  313. }
  314. t.Log("[Test_SqlTemplateClient_QueryByParamMapWithDateFormat_XmlIndent]->rows:\n" + rows)
  315. }
  316. func Test_Where_Search_Structs_Json(t *testing.T) {
  317. var articles []Article
  318. json, err := db.Where("id=?", 6).Search(&articles).Json()
  319. if err != nil {
  320. t.Fatal(err)
  321. }
  322. t.Log("[Test_Where_Search_Structs_Json]->rows:\n" + json)
  323. }
  324. func Test_Search_Structs_Xml(t *testing.T) {
  325. var articles []Article
  326. xml, err := db.Where("id=?", 6).Search(&articles).Xml()
  327. if err != nil {
  328. t.Fatal(err)
  329. }
  330. t.Log("[Test_Search_Structs_Xml]->rows:\n" + xml)
  331. }
  332. func Test_Search_Structs_XmlIndent(t *testing.T) {
  333. var articles []Article
  334. xml, err := db.Where("id=?", 6).Search(&articles).XmlIndent("", " ", "Article")
  335. if err != nil {
  336. t.Fatal(err)
  337. }
  338. t.Log("[Test_Search_Structs_XmlIndent]->rows:\n" + xml)
  339. }
  340. func Test_Search_Structs_Json(t *testing.T) {
  341. var categories []Category
  342. Json, err := db.Select("id").Search(&categories).Json()
  343. if err != nil {
  344. t.Fatal(err)
  345. }
  346. t.Log("[Test_Search_Structs_Json]->rows:\n", Json)
  347. }
  348. func Test_Sql_Find_Structs(t *testing.T) {
  349. var categories2 []Category
  350. err := db.Sql("select * from category where id =?", 16).Find(&categories2)
  351. if err != nil {
  352. t.Fatal(err)
  353. }
  354. t.Log("[Test_Sql_Find_Structs]->rows:\n", categories2)
  355. }
  356. func Test_SqlMapClient_Find_Structs(t *testing.T) {
  357. var categories2 []Category
  358. db.AddSql("1", "select * from category where id =?")
  359. err := db.SqlMapClient("1", 16).Find(&categories2)
  360. if err != nil {
  361. t.Fatal(err)
  362. }
  363. t.Log("[Test_SqlMapClient_Find_Structs]->rows:\n", categories2)
  364. }
  365. func Test_SqlTemplateClient_Find_Structs(t *testing.T) {
  366. var categories2 []Category
  367. db.AddSqlTemplate("1", "select * from category where id =?id")
  368. err := db.SqlTemplateClient("1", &map[string]interface{}{"id": 25}).Find(&categories2)
  369. if err != nil {
  370. t.Fatal(err)
  371. }
  372. t.Log("[Test_SqlTemplateClient_Find_Structs]->rows:\n", categories2)
  373. }
  374. func Test_Sql_Search_Json(t *testing.T) {
  375. var categories2 []Category
  376. json, err := db.Sql("select * from category where id =?", 16).Search(&categories2).Json()
  377. if err != nil {
  378. t.Fatal(err)
  379. }
  380. t.Log("[Test_Sql_Search_Json]->rows:\n", json)
  381. }
  382. func Test_SqlMapClient_Search_Json(t *testing.T) {
  383. var categories2 []Category
  384. db.AddSql("1", "select * from category where id =?")
  385. json, err := db.SqlMapClient("1", 16).Search(&categories2).Json()
  386. if err != nil {
  387. t.Fatal(err)
  388. }
  389. t.Log("[Test_SqlMapClient_Search_Json]->rows:\n", json)
  390. }
  391. func Test_SqlTemplateClient_Search_Json(t *testing.T) {
  392. var categories2 []Category
  393. db.AddSqlTemplate("1", "select * from category where id =?id")
  394. json, err := db.SqlTemplateClient("1", &map[string]interface{}{"id": 25}).Search(&categories2).Json()
  395. if err != nil {
  396. t.Fatal(err)
  397. }
  398. t.Log("[Test_SqlTemplateClient_Search_Json]->rows:\n", json)
  399. }
  400. func Test_Query(t *testing.T) {
  401. result, err := db.Query("select * from category where id =25")
  402. if err != nil {
  403. t.Fatal(err)
  404. }
  405. t.Log("[Test_Query]->rows:\n", result)
  406. }
  407. func Test_Sql_Execute(t *testing.T) {
  408. result, err := db.Sql("INSERT INTO categories VALUES (?, ?, ?, ?, ?)", 18, "xiaozhang", 1, 1, 1).Execute()
  409. if err != nil {
  410. t.Fatal(err)
  411. }
  412. t.Log("[Test_Sql_Execute]->rows:\n", result)
  413. }
  414. func Test_SqlMapClient_Execute(t *testing.T) {
  415. db.AddSql("Test_SqlMapClient_Execute", "INSERT INTO categories VALUES (?id, ?name, ?counts, ?orders, ?pid)")
  416. result, err := db.SqlMapClient("Test_SqlMapClient_Execute", &map[string]interface{}{"id": 19, "name": "xiaowang", "counts": 1, "orders": 1, "pid": 1}).Execute()
  417. if err != nil {
  418. t.Fatal(err)
  419. }
  420. t.Log("[Test_SqlMapClient_Execute]->rows:\n", result)
  421. }
  422. func Test_SqlTemplateClientt_Execute(t *testing.T) {
  423. db.AddSqlTemplate("Test_SqlTemplateClientt_Execute", "INSERT INTO categories VALUES (?id, ?name, ?counts, ?orders, ?pid)")
  424. result, err := db.SqlTemplateClient("Test_SqlTemplateClientt_Execute", &map[string]interface{}{"id": 20, "name": "laowang", "counts": 1, "orders": 1, "pid": 1}).Execute()
  425. if err != nil {
  426. t.Fatal(err)
  427. }
  428. t.Log("[Test_SqlTemplateClientt_Execute]->rows:\n", result)
  429. }
  430. func Test_GetSQL(t *testing.T) {
  431. db.AddSql("Test_GetSQL_1", "select * from Test_GetSQL_1")
  432. t.Log("[Test_GetSQL]->Test_GetSQL_1:\n", db.GetSql("Test_GetSQL_1"))
  433. t.Log("[Test_GetSQL]->Test_GetSQL_2:\n", db.GetSql("Test_GetSQL_1"))
  434. }
  435. func Test_GetSqlMap(t *testing.T) {
  436. t.Log("[Test_GetSqlMap]->3:\n")
  437. t.Log(xorm.JSONString(db.GetSqlMap(3), true))
  438. sqlmap := db.GetSqlMap(3)
  439. t.Log("[Test_GetSqlMap]->len(sqlmap):\n", len(sqlmap))
  440. db.AddSql("Test_GetSqlMap_1", "select * from Test_GetSqlMap_1")
  441. db.AddSql("Test_GetSqlMap_2", "select * from Test_GetSqlMap_2")
  442. db.AddSql("Test_GetSqlMap_3", "select * from Test_GetSqlMap_3")
  443. db.AddSql("Test_GetSqlMap_4", "select * from Test_GetSqlMap_4")
  444. db.AddSql("Test_GetSqlMap_5", "select * from Test_GetSqlMap_5")
  445. t.Log("[Test_GetSqlMap]->init->3:\n")
  446. t.Log(xorm.JSONString(db.GetSqlMap(3), true))
  447. sqlmap = db.GetSqlMap(3)
  448. t.Log("[Test_GetSqlMap]->init->len(sqlmap):\n", len(sqlmap))
  449. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_null:\n")
  450. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_null"), true))
  451. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1:\n")
  452. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1"), true))
  453. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1,Test_GetSqlMap_3:\n")
  454. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1", "Test_GetSqlMap_3"), true))
  455. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1,Test_GetSqlMap_3,3:\n")
  456. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1", "Test_GetSqlMap_3", 3), true))
  457. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1,Test_GetSqlMap_3,3,Test_GetSqlMap_null:\n")
  458. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1", "Test_GetSqlMap_3", 3, "Test_GetSqlMap_null"), true))
  459. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1,Test_GetSqlMap_3,[]string{Test_GetSqlMap_2, Test_GetSqlMap_4}:\n")
  460. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1", "Test_GetSqlMap_3", []string{"Test_GetSqlMap_2", "Test_GetSqlMap_4"}), true))
  461. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1,Test_GetSqlMap_3,[]string{Test_GetSqlMap_2, Test_GetSqlMap_4},2:\n")
  462. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1", "Test_GetSqlMap_3", []string{"Test_GetSqlMap_2", "Test_GetSqlMap_4"}, 2), true))
  463. t.Log("[Test_GetSqlMap]->Test_GetSqlMap_1,Test_GetSqlMap_3,[]string{Test_GetSqlMap_2, Test_GetSqlMap_4},2 ,Test_GetSqlMap_null:\n")
  464. t.Log(xorm.JSONString(db.GetSqlMap("Test_GetSqlMap_1", "Test_GetSqlMap_3", []string{"Test_GetSqlMap_2", "Test_GetSqlMap_4"}, 2, "Test_GetSqlMap_null"), true))
  465. }
  466. func Test_GetSqlTemplates(t *testing.T) {
  467. t.Log("[GetSqlTemplates]->Test_GetSqlTemplates_1:\n")
  468. t.Log(xorm.JSONString(db.GetSqlTemplates("Test_GetSqlTemplates_1"), true))
  469. Test_GetSqlTemplates_1 := db.GetSqlTemplates("Test_GetSqlTemplates_1")["Test_GetSqlTemplates_1"]
  470. if Test_GetSqlTemplates_1 == nil {
  471. t.Log("Test_GetSqlTemplates_1 is nil")
  472. }
  473. t.Log("[Test_GetSqlMap]->len(sqlmap):\n", len(db.GetSqlTemplates("Test_GetSqlTemplates_1")))
  474. db.AddSqlTemplate("Test_GetSqlTemplates_1", "select * from Test_GetSqlTemplates_1")
  475. db.AddSqlTemplate("Test_GetSqlTemplates_2", "select * from Test_GetSqlTemplates_2")
  476. db.AddSqlTemplate("Test_GetSqlTemplates_3", "select * from Test_GetSqlTemplates_3")
  477. db.AddSqlTemplate("Test_GetSqlTemplates_4", "select * from Test_GetSqlTemplates_4")
  478. db.AddSqlTemplate("Test_GetSqlTemplates_5", "select * from Test_GetSqlTemplates_5")
  479. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_1:\n")
  480. t.Log(xorm.JSONString(db.GetSqlTemplates("Test_GetSqlTemplates_1"), true))
  481. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_1,Test_GetSqlTemplates_3:\n")
  482. t.Log(xorm.JSONString(db.GetSqlTemplates("Test_GetSqlTemplates_1", "Test_GetSqlTemplates_3"), true))
  483. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_1,Test_GetSqlTemplates_3,3:\n")
  484. t.Log(xorm.JSONString(db.GetSqlTemplates("Test_GetSqlTemplates_1", "Test_GetSqlTemplates_3", 3), true))
  485. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_1,Test_GetSqlTemplates_3,[]string{Test_GetSqlTemplates_2, Test_GetSqlTemplates_4}:\n")
  486. t.Log(xorm.JSONString(db.GetSqlTemplates("Test_GetSqlTemplates_1", "Test_GetSqlTemplates_3", []string{"Test_GetSqlTemplates_2", "Test_GetSqlTemplates_4"}), true))
  487. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_1,Test_GetSqlTemplates_3,[]string{Test_GetSqlTemplates_2, Test_GetSqlTemplates_4},2:\n")
  488. t.Log(xorm.JSONString(db.GetSqlTemplates("Test_GetSqlTemplates_1", "Test_GetSqlTemplates_3", []string{"Test_GetSqlTemplates_2", "Test_GetSqlTemplates_4"}, 2), true))
  489. strSqlTemplate, err := db.GetSqlTemplates("Test_GetSqlTemplates_1")["Test_GetSqlTemplates_1"].Execute(nil)
  490. if err != nil {
  491. t.Fatal(err)
  492. }
  493. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_1->strSqlTemplate:\n", strSqlTemplate)
  494. strSqlTemplate, err = db.GetSqlTemplates("Test_GetSqlTemplates_1", "Test_GetSqlTemplates_3", []string{"Test_GetSqlTemplates_2", "Test_GetSqlTemplates_4"}, 2)["Test_GetSqlTemplates_2"].Execute(nil)
  495. if err != nil {
  496. t.Fatal(err)
  497. }
  498. t.Log("[Test_GetSqlTemplates]->Test_GetSqlTemplates_2->strSqlTemplate:\n", strSqlTemplate)
  499. }