v1_test.go 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108
  1. package v1
  2. import (
  3. "fmt"
  4. "git.sxidc.com/service-supports/dps-sdk/client"
  5. uuid "github.com/satori/go.uuid"
  6. "math/rand"
  7. "strings"
  8. "testing"
  9. "time"
  10. )
  11. func getUUID() string {
  12. return uuid.NewV4().String()
  13. }
  14. func simpleUUID() string {
  15. return strings.ReplaceAll(getUUID(), "-", "")
  16. }
  17. var tableModelDescribe = map[string]string{
  18. "ID": "gorm:\"primary_key;type:varchar(32);comment:id;\"",
  19. "Name": "gorm:\"not null;type:varchar(128);comment:数据库名称;\"",
  20. "Time": "gorm:\"not null;type:timestamp with time zone;comment:数据库时间;\"",
  21. "TableNum": "gorm:\"not null;type:integer;comment:数据库表数量;\"",
  22. }
  23. func TestAutoMigrate(t *testing.T) {
  24. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  25. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  26. newToolKit(t).
  27. autoMigrate(&client.AutoMigrateRequest{
  28. Items: []client.AutoMigrateItem{
  29. {
  30. TablePrefixWithSchema: "test." + simpleUUID()[0:8],
  31. Version: "v1",
  32. TableModelDescribe: tableModelDescribe,
  33. },
  34. },
  35. })
  36. }
  37. func TestTransaction(t *testing.T) {
  38. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  39. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  40. tablePrefix := "test." + simpleUUID()[0:8]
  41. id := simpleUUID()
  42. name := simpleUUID()
  43. now := time.Now().Local()
  44. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  45. newName := simpleUUID()
  46. newNow := time.Now().Local()
  47. newTableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  48. var count int64
  49. resultTableRow := client.NewTableRow()
  50. newToolKit(t).
  51. autoMigrate(&client.AutoMigrateRequest{
  52. Items: []client.AutoMigrateItem{
  53. {
  54. TablePrefixWithSchema: tablePrefix,
  55. Version: "v1",
  56. TableModelDescribe: tableModelDescribe,
  57. },
  58. },
  59. }).
  60. transaction(func(tx client.Transaction) error {
  61. statement, err := tx.InsertTx(&client.InsertRequest{
  62. TablePrefixWithSchema: tablePrefix,
  63. Version: "v1",
  64. KeyColumns: []string{"id"},
  65. TableRow: client.NewTableRow().
  66. AddColumnValueString("id", id).
  67. AddColumnValueString("name", name).
  68. AddColumnValueTime("time", now).
  69. AddColumnValueInt("table_num", tableNum),
  70. UserID: "test",
  71. })
  72. if err != nil {
  73. return err
  74. }
  75. fmt.Println(statement)
  76. return nil
  77. }).
  78. queryByKeys(&client.QueryByKeysRequest{
  79. TablePrefixWithSchema: tablePrefix,
  80. Version: "v1",
  81. KeyValues: map[string]string{"id": id},
  82. }, resultTableRow).
  83. assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
  84. assertEqual(name, resultTableRow.ColumnValueString("name"), "名称不一致").
  85. assertEqual(now.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  86. assertEqual(tableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
  87. transaction(func(tx client.Transaction) error {
  88. statement, err := tx.UpdateTx(&client.UpdateRequest{
  89. TablePrefixWithSchema: tablePrefix,
  90. Version: "v1",
  91. KeyValues: map[string]string{"id": id},
  92. NewTableRow: client.NewTableRow().
  93. AddColumnValueString("id", id).
  94. AddColumnValueString("name", newName).
  95. AddColumnValueTime("time", newNow).
  96. AddColumnValueInt("table_num", newTableNum),
  97. UserID: "test",
  98. })
  99. if err != nil {
  100. return err
  101. }
  102. fmt.Println(statement)
  103. return nil
  104. }).
  105. queryByKeys(&client.QueryByKeysRequest{
  106. TablePrefixWithSchema: tablePrefix,
  107. Version: "v1",
  108. KeyValues: map[string]string{"id": id},
  109. }, resultTableRow).
  110. assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
  111. assertEqual(newName, resultTableRow.ColumnValueString("name"), "名称不一致").
  112. assertEqual(newNow.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  113. assertEqual(newTableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
  114. transaction(func(tx client.Transaction) error {
  115. statement, err := tx.UpdateTx(&client.UpdateRequest{
  116. TablePrefixWithSchema: tablePrefix,
  117. Version: "v1",
  118. KeyValues: map[string]string{"id": id},
  119. NewTableRow: client.NewTableRow().
  120. AddColumnValueString("id", id).
  121. AddColumnValueString("name", name).
  122. AddColumnValueTime("time", now).
  123. AddColumnValueInt("table_num", tableNum),
  124. UserID: "test",
  125. })
  126. if err != nil {
  127. return err
  128. }
  129. fmt.Println(statement)
  130. statement, err = tx.DeleteTx(&client.DeleteRequest{
  131. TablePrefixWithSchema: tablePrefix,
  132. Version: "v1",
  133. KeyValues: map[string]string{"id": id},
  134. UserID: "test",
  135. })
  136. if err != nil {
  137. return err
  138. }
  139. fmt.Println(statement)
  140. return nil
  141. }).
  142. countWhere(&client.CountWhereRequest{
  143. TablePrefixWithSchema: tablePrefix,
  144. Version: "v1",
  145. Where: client.NewClause().Equal("id", id),
  146. }, &count).
  147. assertEqual(int64(0), count, "数量不一致")
  148. }
  149. func TestTransactionBatch(t *testing.T) {
  150. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  151. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  152. tablePrefix := "test." + simpleUUID()[0:8]
  153. id1 := simpleUUID()
  154. name1 := simpleUUID()
  155. now1 := time.Now().Local()
  156. tableNum1 := rand.New(rand.NewSource(now1.Unix())).Intn(10)
  157. id2 := simpleUUID()
  158. name2 := simpleUUID()
  159. now2 := time.Now().Local()
  160. tableNum2 := rand.New(rand.NewSource(now2.Unix())).Intn(10)
  161. var count int64
  162. resultTableRow := client.NewTableRow()
  163. newToolKit(t).
  164. autoMigrate(&client.AutoMigrateRequest{
  165. Items: []client.AutoMigrateItem{
  166. {
  167. TablePrefixWithSchema: tablePrefix,
  168. Version: "v1",
  169. TableModelDescribe: tableModelDescribe,
  170. },
  171. },
  172. }).
  173. transaction(func(tx client.Transaction) error {
  174. statement, err := tx.InsertBatchTx(&client.InsertBatchRequest{
  175. Items: []client.InsertTableRowItem{
  176. {
  177. TablePrefixWithSchema: tablePrefix,
  178. Version: "v1",
  179. KeyColumns: []string{"id"},
  180. TableRows: []*client.TableRow{
  181. client.NewTableRow().
  182. AddColumnValueString("id", id1).
  183. AddColumnValueString("name", name1).
  184. AddColumnValueTime("time", now1).
  185. AddColumnValueInt("table_num", tableNum1),
  186. client.NewTableRow().
  187. AddColumnValueString("id", id2).
  188. AddColumnValueString("name", name2).
  189. AddColumnValueTime("time", now2).
  190. AddColumnValueInt("table_num", tableNum2),
  191. },
  192. },
  193. },
  194. })
  195. if err != nil {
  196. return err
  197. }
  198. fmt.Println(statement)
  199. return nil
  200. }).
  201. queryByKeys(&client.QueryByKeysRequest{
  202. TablePrefixWithSchema: tablePrefix,
  203. Version: "v1",
  204. KeyValues: map[string]string{"id": id1},
  205. }, resultTableRow).
  206. assertEqual(id1, resultTableRow.ColumnValueString("id"), "ID不一致").
  207. assertEqual(name1, resultTableRow.ColumnValueString("name"), "名称不一致").
  208. assertEqual(now1.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  209. assertEqual(tableNum1, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
  210. queryByKeys(&client.QueryByKeysRequest{
  211. TablePrefixWithSchema: tablePrefix,
  212. Version: "v1",
  213. KeyValues: map[string]string{"id": id2},
  214. }, resultTableRow).
  215. assertEqual(id2, resultTableRow.ColumnValueString("id"), "ID不一致").
  216. assertEqual(name2, resultTableRow.ColumnValueString("name"), "名称不一致").
  217. assertEqual(now2.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  218. assertEqual(tableNum2, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
  219. transaction(func(tx client.Transaction) error {
  220. statement, err := tx.DeleteBatchTx(&client.DeleteBatchRequest{
  221. Items: []client.DeleteTableRowItem{
  222. {
  223. TablePrefixWithSchema: tablePrefix,
  224. Version: "v1",
  225. KeyValues: []map[string]string{
  226. {"id": id1},
  227. {"id": id2},
  228. },
  229. },
  230. },
  231. UserID: "test",
  232. })
  233. if err != nil {
  234. return err
  235. }
  236. fmt.Println(statement)
  237. return nil
  238. }).
  239. countWhere(&client.CountWhereRequest{
  240. TablePrefixWithSchema: tablePrefix,
  241. Version: "v1",
  242. Where: client.NewClause().Equal("id", id1),
  243. }, &count).
  244. assertEqual(int64(0), count, "数量不一致").
  245. countWhere(&client.CountWhereRequest{
  246. TablePrefixWithSchema: tablePrefix,
  247. Version: "v1",
  248. Where: client.NewClause().Equal("id", id2),
  249. }, &count).
  250. assertEqual(int64(0), count, "数量不一致")
  251. }
  252. func TestInsert(t *testing.T) {
  253. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  254. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  255. tablePrefix := "test." + simpleUUID()[0:8]
  256. id := simpleUUID()
  257. name := simpleUUID()
  258. now := time.Now().Local()
  259. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  260. resultTableRow := client.NewTableRow()
  261. newToolKit(t).
  262. autoMigrate(&client.AutoMigrateRequest{
  263. Items: []client.AutoMigrateItem{
  264. {
  265. TablePrefixWithSchema: tablePrefix,
  266. Version: "v1",
  267. TableModelDescribe: tableModelDescribe,
  268. },
  269. },
  270. }).
  271. insert(&client.InsertRequest{
  272. TablePrefixWithSchema: tablePrefix,
  273. Version: "v1",
  274. KeyColumns: []string{"id"},
  275. TableRow: client.NewTableRow().
  276. AddColumnValueString("id", id).
  277. AddColumnValueString("name", name).
  278. AddColumnValueTime("time", now).
  279. AddColumnValueInt("table_num", tableNum),
  280. UserID: "test",
  281. }).
  282. queryByKeys(&client.QueryByKeysRequest{
  283. TablePrefixWithSchema: tablePrefix,
  284. Version: "v1",
  285. KeyValues: map[string]string{"id": id},
  286. }, resultTableRow).
  287. assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
  288. assertEqual(name, resultTableRow.ColumnValueString("name"), "名称不一致").
  289. assertEqual(now.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  290. assertEqual(tableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致")
  291. }
  292. func TestInsertBatch(t *testing.T) {
  293. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  294. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  295. tablePrefix := "test." + simpleUUID()[0:8]
  296. id1 := simpleUUID()
  297. name1 := simpleUUID()
  298. now1 := time.Now().Local()
  299. tableNum1 := rand.New(rand.NewSource(now1.Unix())).Intn(10)
  300. id2 := simpleUUID()
  301. name2 := simpleUUID()
  302. now2 := time.Now().Local()
  303. tableNum2 := rand.New(rand.NewSource(now2.Unix())).Intn(10)
  304. resultTableRows := make([]client.TableRow, 0)
  305. var totalCount int64
  306. newToolKit(t).
  307. autoMigrate(&client.AutoMigrateRequest{
  308. Items: []client.AutoMigrateItem{
  309. {
  310. TablePrefixWithSchema: tablePrefix,
  311. Version: "v1",
  312. TableModelDescribe: tableModelDescribe,
  313. },
  314. },
  315. }).
  316. insertBatch(&client.InsertBatchRequest{
  317. Items: []client.InsertTableRowItem{
  318. {
  319. TablePrefixWithSchema: tablePrefix,
  320. Version: "v1",
  321. KeyColumns: []string{"id"},
  322. TableRows: []*client.TableRow{
  323. client.NewTableRow().
  324. AddColumnValueString("id", id1).
  325. AddColumnValueString("name", name1).
  326. AddColumnValueTime("time", now1).
  327. AddColumnValueInt("table_num", tableNum1),
  328. client.NewTableRow().
  329. AddColumnValueString("id", id2).
  330. AddColumnValueString("name", name2).
  331. AddColumnValueTime("time", now2).
  332. AddColumnValueInt("table_num", tableNum2),
  333. },
  334. },
  335. },
  336. }).
  337. queryByWhereAndOrderBy(&client.QueryByWhereAndOrderByRequest{
  338. TablePrefixWithSchema: tablePrefix,
  339. Version: "v1",
  340. Where: client.NewClause().
  341. Equal("id", id1).
  342. Equal("name", name1).
  343. Equal("table_num", tableNum1),
  344. PageNo: 1,
  345. PageSize: 1,
  346. }, &resultTableRows, &totalCount).
  347. assertEqual(1, int(totalCount), "总数不一致").
  348. assertEqual(id1, resultTableRows[0].ColumnValueString("id"), "ID不一致").
  349. assertEqual(name1, resultTableRows[0].ColumnValueString("name"), "名称不一致").
  350. assertEqual(now1.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
  351. assertEqual(tableNum1, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
  352. commonQuery(&client.CommonQueryRequest{
  353. TablePrefixWithSchema: tablePrefix,
  354. Version: "v1",
  355. Where: client.NewClause().
  356. Equal("id", id2).
  357. Equal("name", name2).
  358. Equal("table_num", tableNum2),
  359. PageNo: 1,
  360. PageSize: 1,
  361. }, &resultTableRows, &totalCount).
  362. assertEqual(1, int(totalCount), "总数不一致").
  363. assertEqual(id2, resultTableRows[0].ColumnValueString("id"), "ID不一致").
  364. assertEqual(name2, resultTableRows[0].ColumnValueString("name"), "名称不一致").
  365. assertEqual(now2.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
  366. assertEqual(tableNum2, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
  367. queryOnlyByWhereAndOrderBy(&client.QueryByWhereAndOrderByRequest{
  368. TablePrefixWithSchema: tablePrefix,
  369. Version: "v1",
  370. Where: client.NewClause().
  371. Equal("id", id1).
  372. Equal("name", name1).
  373. Equal("table_num", tableNum1),
  374. PageNo: 1,
  375. PageSize: 1,
  376. }, &resultTableRows).
  377. assertEqual(id1, resultTableRows[0].ColumnValueString("id"), "ID不一致").
  378. assertEqual(name1, resultTableRows[0].ColumnValueString("name"), "名称不一致").
  379. assertEqual(now1.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
  380. assertEqual(tableNum1, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
  381. commonQueryOnly(&client.CommonQueryRequest{
  382. TablePrefixWithSchema: tablePrefix,
  383. Version: "v1",
  384. Where: client.NewClause().
  385. Equal("id", id2).
  386. Equal("name", name2).
  387. Equal("table_num", tableNum2),
  388. PageNo: 1,
  389. PageSize: 1,
  390. }, &resultTableRows).
  391. assertEqual(id2, resultTableRows[0].ColumnValueString("id"), "ID不一致").
  392. assertEqual(name2, resultTableRows[0].ColumnValueString("name"), "名称不一致").
  393. assertEqual(now2.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
  394. assertEqual(tableNum2, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致")
  395. }
  396. func TestUpdate(t *testing.T) {
  397. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  398. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  399. tablePrefix := "test." + simpleUUID()[0:8]
  400. id := simpleUUID()
  401. name := simpleUUID()
  402. now := time.Now().Local()
  403. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  404. newName := simpleUUID()
  405. newNow := time.Now().Local()
  406. newTableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  407. resultTableRow := client.NewTableRow()
  408. newToolKit(t).
  409. autoMigrate(&client.AutoMigrateRequest{
  410. Items: []client.AutoMigrateItem{
  411. {
  412. TablePrefixWithSchema: tablePrefix,
  413. Version: "v1",
  414. TableModelDescribe: tableModelDescribe,
  415. },
  416. },
  417. }).
  418. insert(&client.InsertRequest{
  419. TablePrefixWithSchema: tablePrefix,
  420. Version: "v1",
  421. KeyColumns: []string{"id"},
  422. TableRow: client.NewTableRow().
  423. AddColumnValueString("id", id).
  424. AddColumnValueString("name", name).
  425. AddColumnValueTime("time", now).
  426. AddColumnValueInt("table_num", tableNum),
  427. UserID: "test",
  428. }).
  429. update(&client.UpdateRequest{
  430. TablePrefixWithSchema: tablePrefix,
  431. Version: "v1",
  432. KeyValues: map[string]string{"id": id},
  433. NewTableRow: client.NewTableRow().
  434. AddColumnValueString("id", id).
  435. AddColumnValueString("name", newName).
  436. AddColumnValueTime("time", newNow).
  437. AddColumnValueInt("table_num", newTableNum),
  438. UserID: "test",
  439. }).
  440. queryByKeys(&client.QueryByKeysRequest{
  441. TablePrefixWithSchema: tablePrefix,
  442. Version: "v1",
  443. KeyValues: map[string]string{"id": id},
  444. }, resultTableRow).
  445. assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
  446. assertEqual(newName, resultTableRow.ColumnValueString("name"), "名称不一致").
  447. assertEqual(newNow.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  448. assertEqual(newTableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致")
  449. }
  450. func TestDelete(t *testing.T) {
  451. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  452. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  453. tablePrefix := "test." + simpleUUID()[0:8]
  454. id := simpleUUID()
  455. name := simpleUUID()
  456. now := time.Now().Local()
  457. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  458. var count int64
  459. newToolKit(t).
  460. autoMigrate(&client.AutoMigrateRequest{
  461. Items: []client.AutoMigrateItem{
  462. {
  463. TablePrefixWithSchema: tablePrefix,
  464. Version: "v1",
  465. TableModelDescribe: tableModelDescribe,
  466. },
  467. },
  468. }).
  469. insert(&client.InsertRequest{
  470. TablePrefixWithSchema: tablePrefix,
  471. Version: "v1",
  472. KeyColumns: []string{"id"},
  473. TableRow: client.NewTableRow().
  474. AddColumnValueString("id", id).
  475. AddColumnValueString("name", name).
  476. AddColumnValueTime("time", now).
  477. AddColumnValueInt("table_num", tableNum),
  478. UserID: "test",
  479. }).
  480. delete(&client.DeleteRequest{
  481. TablePrefixWithSchema: tablePrefix,
  482. Version: "v1",
  483. KeyValues: map[string]string{"id": id},
  484. UserID: "test",
  485. }).
  486. countWhere(&client.CountWhereRequest{
  487. TablePrefixWithSchema: tablePrefix,
  488. Version: "v1",
  489. Where: client.NewClause().Equal("id", id),
  490. }, &count).
  491. assertEqual(int64(0), count, "数量不一致")
  492. }
  493. func TestDeleteBatch(t *testing.T) {
  494. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  495. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  496. tablePrefix := "test." + simpleUUID()[0:8]
  497. id1 := simpleUUID()
  498. name1 := simpleUUID()
  499. now1 := time.Now().Local()
  500. tableNum1 := rand.New(rand.NewSource(now1.Unix())).Intn(10)
  501. id2 := simpleUUID()
  502. name2 := simpleUUID()
  503. now2 := time.Now().Local()
  504. tableNum2 := rand.New(rand.NewSource(now2.Unix())).Intn(10)
  505. var count int64
  506. newToolKit(t).
  507. autoMigrate(&client.AutoMigrateRequest{
  508. Items: []client.AutoMigrateItem{
  509. {
  510. TablePrefixWithSchema: tablePrefix,
  511. Version: "v1",
  512. TableModelDescribe: tableModelDescribe,
  513. },
  514. },
  515. }).
  516. insertBatch(&client.InsertBatchRequest{
  517. Items: []client.InsertTableRowItem{
  518. {
  519. TablePrefixWithSchema: tablePrefix,
  520. Version: "v1",
  521. KeyColumns: []string{"id"},
  522. TableRows: []*client.TableRow{
  523. client.NewTableRow().
  524. AddColumnValueString("id", id1).
  525. AddColumnValueString("name", name1).
  526. AddColumnValueTime("time", now1).
  527. AddColumnValueInt("table_num", tableNum1),
  528. client.NewTableRow().
  529. AddColumnValueString("id", id2).
  530. AddColumnValueString("name", name2).
  531. AddColumnValueTime("time", now2).
  532. AddColumnValueInt("table_num", tableNum2),
  533. },
  534. },
  535. },
  536. }).
  537. deleteBatch(&client.DeleteBatchRequest{
  538. Items: []client.DeleteTableRowItem{
  539. {
  540. TablePrefixWithSchema: tablePrefix,
  541. Version: "v1",
  542. KeyValues: []map[string]string{
  543. {"id": id1},
  544. {"id": id2},
  545. },
  546. },
  547. },
  548. UserID: "test",
  549. }).
  550. commonCount(&client.CommonCountRequest{
  551. TablePrefixWithSchema: tablePrefix,
  552. Version: "v1",
  553. }, &count).
  554. assertEqual(int64(0), count, "数量不一致")
  555. }
  556. func TestReply(t *testing.T) {
  557. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  558. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  559. tablePrefix := "test." + simpleUUID()[0:8]
  560. id := simpleUUID()
  561. name := simpleUUID()
  562. now := time.Now().Local()
  563. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  564. resultTableRow := client.NewTableRow()
  565. newToolKit(t).
  566. autoMigrate(&client.AutoMigrateRequest{
  567. Items: []client.AutoMigrateItem{
  568. {
  569. TablePrefixWithSchema: tablePrefix,
  570. Version: "v1",
  571. TableModelDescribe: tableModelDescribe,
  572. },
  573. },
  574. }).
  575. insert(&client.InsertRequest{
  576. TablePrefixWithSchema: tablePrefix,
  577. Version: "v1",
  578. KeyColumns: []string{"id"},
  579. TableRow: client.NewTableRow().
  580. AddColumnValueString("id", id).
  581. AddColumnValueString("name", name).
  582. AddColumnValueTime("time", now).
  583. AddColumnValueInt("table_num", tableNum),
  584. UserID: "test",
  585. }).
  586. reply(&client.ReplayRequest{
  587. TablePrefixWithSchema: tablePrefix,
  588. Version: "v1",
  589. KeyValues: map[string]string{"id": id},
  590. UserID: "test",
  591. }).
  592. queryByKeys(&client.QueryByKeysRequest{
  593. TablePrefixWithSchema: tablePrefix,
  594. Version: "v1",
  595. KeyValues: map[string]string{"id": id},
  596. }, resultTableRow).
  597. assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
  598. assertEqual(name, resultTableRow.ColumnValueString("name"), "名称不一致").
  599. assertEqual(now.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
  600. assertEqual(tableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致")
  601. }
  602. func TestEventQuery(t *testing.T) {
  603. initClient(t, "localhost:30170", "2b78141779ee432295ca371b91c5cac7")
  604. defer destroyClient(t, "2b78141779ee432295ca371b91c5cac7")
  605. tablePrefix := "test." + simpleUUID()[0:8]
  606. id := simpleUUID()
  607. name := simpleUUID()
  608. now := time.Now().Local()
  609. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  610. newName := simpleUUID()
  611. newNow := time.Now().Local()
  612. newTableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  613. var totalCount int64
  614. eventInfos := make([]client.EventInfo, 0)
  615. newToolKit(t).
  616. autoMigrate(&client.AutoMigrateRequest{
  617. Items: []client.AutoMigrateItem{
  618. {
  619. TablePrefixWithSchema: tablePrefix,
  620. Version: "v1",
  621. TableModelDescribe: tableModelDescribe,
  622. },
  623. },
  624. }).
  625. insert(&client.InsertRequest{
  626. TablePrefixWithSchema: tablePrefix,
  627. Version: "v1",
  628. KeyColumns: []string{"id"},
  629. TableRow: client.NewTableRow().
  630. AddColumnValueString("id", id).
  631. AddColumnValueString("name", name).
  632. AddColumnValueTime("time", now).
  633. AddColumnValueInt("table_num", tableNum),
  634. UserID: "test",
  635. }).
  636. update(&client.UpdateRequest{
  637. TablePrefixWithSchema: tablePrefix,
  638. Version: "v1",
  639. KeyValues: map[string]string{"id": id},
  640. NewTableRow: client.NewTableRow().
  641. AddColumnValueString("id", id).
  642. AddColumnValueString("name", newName).
  643. AddColumnValueTime("time", newNow).
  644. AddColumnValueInt("table_num", newTableNum),
  645. UserID: "test",
  646. }).
  647. countEventByKeys(&client.CountEventByKeysRequest{
  648. TablePrefixWithSchema: tablePrefix,
  649. KeyValues: []string{id},
  650. }, &totalCount).
  651. assertEqual(2, int(totalCount), "总数不一致").
  652. commonCountEvent(&client.CommonCountEventRequest{
  653. TablePrefixWithSchema: tablePrefix,
  654. KeyValues: []string{id},
  655. Version: "v1",
  656. Operation: "create",
  657. CreatorID: "test",
  658. StartCreatedTime: now.Format(time.DateTime),
  659. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  660. }, &totalCount).
  661. assertEqual(1, int(totalCount), "总数不一致").
  662. commonCountEvent(&client.CommonCountEventRequest{
  663. TablePrefixWithSchema: tablePrefix,
  664. KeyValues: []string{id},
  665. Version: "v1",
  666. Operation: "update",
  667. CreatorID: "test",
  668. StartCreatedTime: now.Format(time.DateTime),
  669. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  670. }, &totalCount).
  671. assertEqual(1, int(totalCount), "总数不一致").
  672. eventQueryByKeys(&client.EventQueryByKeysRequest{
  673. TablePrefixWithSchema: tablePrefix,
  674. KeyValues: []string{id},
  675. PageNo: 0,
  676. PageSize: 0,
  677. }, &eventInfos, &totalCount).
  678. assertEqual(2, int(totalCount), "总数不一致").
  679. assertEqual(2, len(eventInfos), "事件数量不一致").
  680. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  681. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  682. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  683. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  684. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  685. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  686. assertEqual(id, eventInfos[1].Key, "关键字段不一致").
  687. assertEqual("v1", eventInfos[1].Version, "版本不一致").
  688. assertEqual("update", eventInfos[1].Operation, "操作不一致").
  689. assertEqual("test", eventInfos[1].CreatorID, "创建者ID不一致").
  690. assertNotEmpty(eventInfos[1].CreateTime, "创建事件为空").
  691. assertNotEmpty(eventInfos[1].Value, "值为空不一致").
  692. eventQueryByKeys(&client.EventQueryByKeysRequest{
  693. TablePrefixWithSchema: tablePrefix,
  694. KeyValues: []string{id},
  695. PageNo: 1,
  696. PageSize: 1,
  697. }, &eventInfos, &totalCount).
  698. assertEqual(2, int(totalCount), "总数不一致").
  699. assertEqual(1, len(eventInfos), "事件数量不一致").
  700. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  701. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  702. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  703. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  704. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  705. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  706. commonEventQuery(&client.CommonEventQueryRequest{
  707. TablePrefixWithSchema: tablePrefix,
  708. KeyValues: []string{id},
  709. Version: "v1",
  710. Operation: "create",
  711. CreatorID: "test",
  712. StartCreatedTime: now.Format(time.DateTime),
  713. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  714. PageNo: 0,
  715. PageSize: 0,
  716. }, &eventInfos, &totalCount).
  717. assertEqual(1, int(totalCount), "总数不一致").
  718. assertEqual(1, len(eventInfos), "事件数量不一致").
  719. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  720. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  721. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  722. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  723. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  724. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  725. commonEventQuery(&client.CommonEventQueryRequest{
  726. TablePrefixWithSchema: tablePrefix,
  727. KeyValues: []string{id},
  728. Version: "v1",
  729. Operation: "update",
  730. CreatorID: "test",
  731. StartCreatedTime: now.Format(time.DateTime),
  732. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  733. PageNo: 0,
  734. PageSize: 0,
  735. }, &eventInfos, &totalCount).
  736. assertEqual(1, int(totalCount), "总数不一致").
  737. assertEqual(1, len(eventInfos), "事件数量不一致").
  738. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  739. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  740. assertEqual("update", eventInfos[0].Operation, "操作不一致").
  741. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  742. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  743. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  744. eventQueryOnlyByKeys(&client.EventQueryByKeysRequest{
  745. TablePrefixWithSchema: tablePrefix,
  746. KeyValues: []string{id},
  747. PageNo: 0,
  748. PageSize: 0,
  749. }, &eventInfos).
  750. assertEqual(2, len(eventInfos), "事件数量不一致").
  751. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  752. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  753. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  754. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  755. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  756. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  757. assertEqual(id, eventInfos[1].Key, "关键字段不一致").
  758. assertEqual("v1", eventInfos[1].Version, "版本不一致").
  759. assertEqual("update", eventInfos[1].Operation, "操作不一致").
  760. assertEqual("test", eventInfos[1].CreatorID, "创建者ID不一致").
  761. assertNotEmpty(eventInfos[1].CreateTime, "创建事件为空").
  762. assertNotEmpty(eventInfos[1].Value, "值为空不一致").
  763. eventQueryOnlyByKeys(&client.EventQueryByKeysRequest{
  764. TablePrefixWithSchema: tablePrefix,
  765. KeyValues: []string{id},
  766. PageNo: 1,
  767. PageSize: 1,
  768. }, &eventInfos).
  769. assertEqual(1, len(eventInfos), "事件数量不一致").
  770. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  771. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  772. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  773. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  774. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  775. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  776. commonEventQueryOnly(&client.CommonEventQueryRequest{
  777. TablePrefixWithSchema: tablePrefix,
  778. KeyValues: []string{id},
  779. Version: "v1",
  780. Operation: "create",
  781. CreatorID: "test",
  782. StartCreatedTime: now.Format(time.DateTime),
  783. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  784. PageNo: 0,
  785. PageSize: 0,
  786. }, &eventInfos).
  787. assertEqual(1, len(eventInfos), "事件数量不一致").
  788. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  789. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  790. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  791. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  792. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  793. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  794. commonEventQueryOnly(&client.CommonEventQueryRequest{
  795. TablePrefixWithSchema: tablePrefix,
  796. KeyValues: []string{id},
  797. Version: "v1",
  798. Operation: "update",
  799. CreatorID: "test",
  800. StartCreatedTime: now.Format(time.DateTime),
  801. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  802. PageNo: 0,
  803. PageSize: 0,
  804. }, &eventInfos).
  805. assertEqual(1, len(eventInfos), "事件数量不一致").
  806. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  807. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  808. assertEqual("update", eventInfos[0].Operation, "操作不一致").
  809. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  810. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  811. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  812. delete(&client.DeleteRequest{
  813. TablePrefixWithSchema: tablePrefix,
  814. Version: "v1",
  815. KeyValues: map[string]string{"id": id},
  816. UserID: "test",
  817. }).
  818. countEventHistoryByKeys(&client.CountEventByKeysRequest{
  819. TablePrefixWithSchema: tablePrefix,
  820. KeyValues: []string{id},
  821. }, &totalCount).
  822. assertEqual(3, int(totalCount), "总数不一致").
  823. commonCountEventHistory(&client.CommonCountEventRequest{
  824. TablePrefixWithSchema: tablePrefix,
  825. KeyValues: []string{id},
  826. Version: "v1",
  827. Operation: "create",
  828. CreatorID: "test",
  829. StartCreatedTime: now.Format(time.DateTime),
  830. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  831. }, &totalCount).
  832. assertEqual(1, int(totalCount), "总数不一致").
  833. commonCountEventHistory(&client.CommonCountEventRequest{
  834. TablePrefixWithSchema: tablePrefix,
  835. KeyValues: []string{id},
  836. Version: "v1",
  837. Operation: "update",
  838. CreatorID: "test",
  839. StartCreatedTime: now.Format(time.DateTime),
  840. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  841. }, &totalCount).
  842. assertEqual(1, int(totalCount), "总数不一致").
  843. commonCountEventHistory(&client.CommonCountEventRequest{
  844. TablePrefixWithSchema: tablePrefix,
  845. KeyValues: []string{id},
  846. Version: "v1",
  847. Operation: "delete",
  848. CreatorID: "test",
  849. StartCreatedTime: now.Format(time.DateTime),
  850. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  851. }, &totalCount).
  852. assertEqual(1, int(totalCount), "总数不一致").
  853. eventHistoryQueryByKeys(&client.EventQueryByKeysRequest{
  854. TablePrefixWithSchema: tablePrefix,
  855. KeyValues: []string{id},
  856. PageNo: 0,
  857. PageSize: 0,
  858. }, &eventInfos, &totalCount).
  859. assertEqual(3, int(totalCount), "总数不一致").
  860. assertEqual(3, len(eventInfos), "事件数量不一致").
  861. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  862. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  863. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  864. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  865. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  866. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  867. assertEqual(id, eventInfos[1].Key, "关键字段不一致").
  868. assertEqual("v1", eventInfos[1].Version, "版本不一致").
  869. assertEqual("update", eventInfos[1].Operation, "操作不一致").
  870. assertEqual("test", eventInfos[1].CreatorID, "创建者ID不一致").
  871. assertNotEmpty(eventInfos[1].CreateTime, "创建事件为空").
  872. assertNotEmpty(eventInfos[1].Value, "值为空不一致").
  873. assertEqual(id, eventInfos[2].Key, "关键字段不一致").
  874. assertEqual("v1", eventInfos[2].Version, "版本不一致").
  875. assertEqual("delete", eventInfos[2].Operation, "操作不一致").
  876. assertEqual("test", eventInfos[2].CreatorID, "创建者ID不一致").
  877. assertNotEmpty(eventInfos[2].CreateTime, "创建事件为空").
  878. assertEqual("", eventInfos[2].Value, "值为空不一致").
  879. eventHistoryQueryByKeys(&client.EventQueryByKeysRequest{
  880. TablePrefixWithSchema: tablePrefix,
  881. KeyValues: []string{id},
  882. PageNo: 1,
  883. PageSize: 1,
  884. }, &eventInfos, &totalCount).
  885. assertEqual(3, int(totalCount), "总数不一致").
  886. assertEqual(1, len(eventInfos), "事件数量不一致").
  887. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  888. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  889. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  890. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  891. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  892. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  893. commonEventHistoryQuery(&client.CommonEventQueryRequest{
  894. TablePrefixWithSchema: tablePrefix,
  895. KeyValues: []string{id},
  896. Version: "v1",
  897. Operation: "create",
  898. CreatorID: "test",
  899. StartCreatedTime: now.Format(time.DateTime),
  900. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  901. PageNo: 0,
  902. PageSize: 0,
  903. }, &eventInfos, &totalCount).
  904. assertEqual(1, int(totalCount), "总数不一致").
  905. assertEqual(1, len(eventInfos), "事件数量不一致").
  906. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  907. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  908. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  909. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  910. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  911. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  912. commonEventHistoryQuery(&client.CommonEventQueryRequest{
  913. TablePrefixWithSchema: tablePrefix,
  914. KeyValues: []string{id},
  915. Version: "v1",
  916. Operation: "update",
  917. CreatorID: "test",
  918. StartCreatedTime: now.Format(time.DateTime),
  919. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  920. PageNo: 0,
  921. PageSize: 0,
  922. }, &eventInfos, &totalCount).
  923. assertEqual(1, int(totalCount), "总数不一致").
  924. assertEqual(1, len(eventInfos), "事件数量不一致").
  925. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  926. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  927. assertEqual("update", eventInfos[0].Operation, "操作不一致").
  928. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  929. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  930. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  931. commonEventHistoryQuery(&client.CommonEventQueryRequest{
  932. TablePrefixWithSchema: tablePrefix,
  933. KeyValues: []string{id},
  934. Version: "v1",
  935. Operation: "delete",
  936. CreatorID: "test",
  937. StartCreatedTime: now.Format(time.DateTime),
  938. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  939. PageNo: 0,
  940. PageSize: 0,
  941. }, &eventInfos, &totalCount).
  942. assertEqual(1, int(totalCount), "总数不一致").
  943. assertEqual(1, len(eventInfos), "事件数量不一致").
  944. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  945. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  946. assertEqual("delete", eventInfos[0].Operation, "操作不一致").
  947. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  948. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  949. assertEqual("", eventInfos[0].Value, "值为空不一致").
  950. eventHistoryQueryOnlyByKeys(&client.EventQueryByKeysRequest{
  951. TablePrefixWithSchema: tablePrefix,
  952. KeyValues: []string{id},
  953. PageNo: 0,
  954. PageSize: 0,
  955. }, &eventInfos).
  956. assertEqual(3, len(eventInfos), "事件数量不一致").
  957. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  958. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  959. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  960. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  961. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  962. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  963. assertEqual(id, eventInfos[1].Key, "关键字段不一致").
  964. assertEqual("v1", eventInfos[1].Version, "版本不一致").
  965. assertEqual("update", eventInfos[1].Operation, "操作不一致").
  966. assertEqual("test", eventInfos[1].CreatorID, "创建者ID不一致").
  967. assertNotEmpty(eventInfos[1].CreateTime, "创建事件为空").
  968. assertNotEmpty(eventInfos[1].Value, "值为空不一致").
  969. assertEqual(id, eventInfos[2].Key, "关键字段不一致").
  970. assertEqual("v1", eventInfos[2].Version, "版本不一致").
  971. assertEqual("delete", eventInfos[2].Operation, "操作不一致").
  972. assertEqual("test", eventInfos[2].CreatorID, "创建者ID不一致").
  973. assertNotEmpty(eventInfos[2].CreateTime, "创建事件为空").
  974. assertEqual("", eventInfos[2].Value, "值为空不一致").
  975. eventHistoryQueryOnlyByKeys(&client.EventQueryByKeysRequest{
  976. TablePrefixWithSchema: tablePrefix,
  977. KeyValues: []string{id},
  978. PageNo: 1,
  979. PageSize: 1,
  980. }, &eventInfos).
  981. assertEqual(1, len(eventInfos), "事件数量不一致").
  982. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  983. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  984. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  985. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  986. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  987. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  988. commonEventHistoryQueryOnly(&client.CommonEventQueryRequest{
  989. TablePrefixWithSchema: tablePrefix,
  990. KeyValues: []string{id},
  991. Version: "v1",
  992. Operation: "create",
  993. CreatorID: "test",
  994. StartCreatedTime: now.Format(time.DateTime),
  995. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  996. PageNo: 0,
  997. PageSize: 0,
  998. }, &eventInfos).
  999. assertEqual(1, len(eventInfos), "事件数量不一致").
  1000. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  1001. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  1002. assertEqual("create", eventInfos[0].Operation, "操作不一致").
  1003. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  1004. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  1005. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  1006. commonEventHistoryQueryOnly(&client.CommonEventQueryRequest{
  1007. TablePrefixWithSchema: tablePrefix,
  1008. KeyValues: []string{id},
  1009. Version: "v1",
  1010. Operation: "update",
  1011. CreatorID: "test",
  1012. StartCreatedTime: now.Format(time.DateTime),
  1013. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  1014. PageNo: 0,
  1015. PageSize: 0,
  1016. }, &eventInfos).
  1017. assertEqual(1, len(eventInfos), "事件数量不一致").
  1018. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  1019. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  1020. assertEqual("update", eventInfos[0].Operation, "操作不一致").
  1021. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  1022. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  1023. assertNotEmpty(eventInfos[0].Value, "值为空不一致").
  1024. commonEventHistoryQueryOnly(&client.CommonEventQueryRequest{
  1025. TablePrefixWithSchema: tablePrefix,
  1026. KeyValues: []string{id},
  1027. Version: "v1",
  1028. Operation: "delete",
  1029. CreatorID: "test",
  1030. StartCreatedTime: now.Format(time.DateTime),
  1031. EndCreatedTime: now.Add(time.Second).Format(time.DateTime),
  1032. PageNo: 0,
  1033. PageSize: 0,
  1034. }, &eventInfos).
  1035. assertEqual(1, len(eventInfos), "事件数量不一致").
  1036. assertEqual(id, eventInfos[0].Key, "关键字段不一致").
  1037. assertEqual("v1", eventInfos[0].Version, "版本不一致").
  1038. assertEqual("delete", eventInfos[0].Operation, "操作不一致").
  1039. assertEqual("test", eventInfos[0].CreatorID, "创建者ID不一致").
  1040. assertNotEmpty(eventInfos[0].CreateTime, "创建事件为空").
  1041. assertEqual("", eventInfos[0].Value, "值为空不一致")
  1042. }