message_mail_box_test.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644
  1. package service
  2. import (
  3. "app.yhyue.com/moapp/jybase/mysql"
  4. "app.yhyue.com/moapp/jybase/redis"
  5. IC "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
  6. "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
  7. _ "github.com/go-sql-driver/mysql"
  8. "log"
  9. "reflect"
  10. "strings"
  11. "testing"
  12. )
  13. func initMysql() {
  14. IC.BaseMysql = &mysql.Mysql{
  15. Address: "192.168.3.217:4000",
  16. UserName: "root",
  17. PassWord: "=PDT49#80Z!RVv52_z",
  18. DBName: "base_service",
  19. MaxOpenConns: 5,
  20. MaxIdleConns: 5,
  21. }
  22. IC.BaseMysql.Init()
  23. IC.MainMysql = &mysql.Mysql{
  24. Address: "192.168.3.149:3306",
  25. UserName: "root",
  26. PassWord: "Topnet123",
  27. DBName: "jianyu",
  28. MaxOpenConns: 5,
  29. MaxIdleConns: 5,
  30. }
  31. IC.MainMysql.Init()
  32. redis.InitRedisBySize(strings.Join([]string{"other=127.0.0.1:6379"}, ","), 100, 30, 300)
  33. }
  34. func init() {
  35. initMysql()
  36. }
  37. func TestMessaggeService_CloseChatSession(t *testing.T) {
  38. type args struct {
  39. in *messagecenter.CloseSessionReq
  40. }
  41. tests := []struct {
  42. name string
  43. args args
  44. wantErrorCode bool
  45. }{
  46. // TODO: Add test cases.
  47. {
  48. name: "关闭会话",
  49. args: args{
  50. in: &messagecenter.CloseSessionReq{
  51. SessionId: 514,
  52. },
  53. }},
  54. }
  55. for _, tt := range tests {
  56. t.Run(tt.name, func(t *testing.T) {
  57. b := MessaggeService{}
  58. if gotErrorCode := b.CloseChatSession(tt.args.in); gotErrorCode != tt.wantErrorCode {
  59. t.Errorf("CloseChatSession() = %v, want %v", gotErrorCode, tt.wantErrorCode)
  60. }
  61. })
  62. }
  63. }
  64. func TestMessaggeService_Count(t *testing.T) {
  65. type args struct {
  66. newUserId int64
  67. userType int64
  68. entUserId int64
  69. }
  70. tests := []struct {
  71. name string
  72. args args
  73. wantCount int
  74. wantLast map[string]interface{}
  75. wantErr bool
  76. }{
  77. // TODO: Add test cases.
  78. {
  79. name: "未读信息总数",
  80. args: args{
  81. newUserId: 831,
  82. userType: 2,
  83. },
  84. wantCount: 0,
  85. },
  86. {
  87. name: "未读信息总数",
  88. args: args{
  89. newUserId: 831,
  90. userType: 1,
  91. entUserId: 2,
  92. },
  93. wantCount: 0,
  94. },
  95. }
  96. for _, tt := range tests {
  97. t.Run(tt.name, func(t *testing.T) {
  98. b := MessaggeService{}
  99. gotCount, gotLast, err := b.Count(tt.args.newUserId, tt.args.userType, tt.args.entUserId, true)
  100. if (err != nil) != tt.wantErr {
  101. t.Errorf("Count() error = %v, wantErr %v", err, tt.wantErr)
  102. return
  103. }
  104. if gotCount != tt.wantCount {
  105. t.Errorf("Count() gotCount = %v, want %v", gotCount, tt.wantCount)
  106. }
  107. if !reflect.DeepEqual(gotLast, tt.wantLast) {
  108. t.Errorf("Count() gotLast = %v, want %v", gotLast, tt.wantLast)
  109. }
  110. })
  111. }
  112. }
  113. func TestMessaggeService_CreateChatSession(t *testing.T) {
  114. type args struct {
  115. in *messagecenter.ChatSessionReq
  116. }
  117. tests := []struct {
  118. name string
  119. args args
  120. wantErrorCode bool
  121. wantSessionId int64
  122. }{
  123. // TODO: Add test cases.
  124. {
  125. name: "会话新建",
  126. args: args{
  127. in: &messagecenter.ChatSessionReq{
  128. EntId: 14184,
  129. UserId: 4962,
  130. CustomerServiceId: 3,
  131. AppId: "10000",
  132. CustomerserviceName: "客服1",
  133. },
  134. },
  135. wantSessionId: 0,
  136. wantErrorCode: true,
  137. },
  138. }
  139. for _, tt := range tests {
  140. t.Run(tt.name, func(t *testing.T) {
  141. b := MessaggeService{}
  142. gotErrorCode, gotSessionId := b.CreateChatSession(tt.args.in)
  143. if gotErrorCode != tt.wantErrorCode {
  144. t.Errorf("CreateChatSession() gotErrorCode = %v, want %v", gotErrorCode, tt.wantErrorCode)
  145. }
  146. if gotSessionId != tt.wantSessionId {
  147. t.Errorf("CreateChatSession() gotSessionId = %v, want %v", gotSessionId, tt.wantSessionId)
  148. }
  149. })
  150. }
  151. }
  152. func TestMessaggeService_FindMessage(t *testing.T) {
  153. type args struct {
  154. in *messagecenter.MessageReq
  155. }
  156. tests := []struct {
  157. name string
  158. args args
  159. want *[]map[string]interface{}
  160. want1 int64
  161. }{
  162. // TODO: Add test cases.
  163. {
  164. name: "客服获取历史信息查询",
  165. args: args{in: &messagecenter.MessageReq{
  166. MsgType: 5,
  167. UserType: 1,
  168. SendId: 10,
  169. PageSize: 10,
  170. NewUserId: 4338,
  171. EntId: 1,
  172. }},
  173. want1: 0,
  174. }, {
  175. name: "客服获取历史信息查询升序",
  176. args: args{in: &messagecenter.MessageReq{
  177. MsgType: 4,
  178. UserType: 1,
  179. SendId: 10,
  180. PageSize: 10,
  181. NewUserId: 10,
  182. EntId: 1,
  183. Sort: "asc",
  184. LastId: 18277,
  185. }},
  186. want1: 0,
  187. },
  188. {
  189. name: "客服获取历史信息查询降序",
  190. args: args{in: &messagecenter.MessageReq{
  191. MsgType: 4,
  192. UserType: 1,
  193. SendId: 10,
  194. PageSize: 10,
  195. NewUserId: 10,
  196. EntId: 1,
  197. Sort: "desc",
  198. LastId: 18277,
  199. }},
  200. want1: 0,
  201. },
  202. {
  203. name: "用户获取客服历史信息查询",
  204. args: args{in: &messagecenter.MessageReq{
  205. MsgType: 4,
  206. UserType: 2,
  207. SendId: 1,
  208. PageSize: 10,
  209. NewUserId: 10,
  210. EntId: 1,
  211. }},
  212. want1: 0,
  213. },
  214. {
  215. name: "用户获取历史信息查询",
  216. args: args{in: &messagecenter.MessageReq{
  217. MsgType: 2,
  218. UserType: 2,
  219. SendId: 10,
  220. PageSize: 10,
  221. NewUserId: 10,
  222. }},
  223. want1: 0,
  224. }, {
  225. name: "用户获取历史信息查询",
  226. args: args{in: &messagecenter.MessageReq{
  227. MsgType: 5,
  228. UserType: 2,
  229. SendId: 1,
  230. PageSize: 10,
  231. NewUserId: 10,
  232. }},
  233. want1: 0,
  234. },
  235. {
  236. name: "用户获取历史信息查询",
  237. args: args{in: &messagecenter.MessageReq{
  238. MsgType: 2,
  239. UserType: 2,
  240. SendId: 10,
  241. PageSize: 10,
  242. NewUserId: 831,
  243. EntId: 1,
  244. LastId: 200000,
  245. }},
  246. want1: 0,
  247. },
  248. }
  249. for _, tt := range tests {
  250. t.Run(tt.name, func(t *testing.T) {
  251. b := MessaggeService{}
  252. got := b.FindMessage(tt.args.in)
  253. if !reflect.DeepEqual(got, tt.want) {
  254. t.Errorf("FindMessage() got = %v, want %v", got, tt.want)
  255. }
  256. })
  257. }
  258. }
  259. func TestMessaggeService_SaveAutoReplyMsg(t *testing.T) {
  260. type args struct {
  261. userType int64
  262. entId int64
  263. entUserId int64
  264. userId int64
  265. content string
  266. appId string
  267. nowFormat string
  268. }
  269. tests := []struct {
  270. name string
  271. args args
  272. want bool
  273. }{
  274. // TODO: Add test cases.
  275. {
  276. name: "会话保存以及消息保存",
  277. args: args{
  278. userType: 1,
  279. entId: 14184,
  280. entUserId: 3,
  281. userId: 831,
  282. content: "你与用户创建会话",
  283. appId: "10000",
  284. nowFormat: "2022-08-02 12:12:12",
  285. },
  286. },
  287. {
  288. name: "会话保存以及消息保存",
  289. args: args{
  290. userType: 2,
  291. entId: 14184,
  292. entUserId: 3,
  293. userId: 831,
  294. content: "你与用户创建会话",
  295. appId: "10000",
  296. nowFormat: "2022-08-02 12:12:12",
  297. },
  298. },
  299. {
  300. name: "会话保存以及消息保存",
  301. args: args{
  302. userType: 0,
  303. entId: 14184,
  304. entUserId: 3,
  305. userId: 831,
  306. content: "你与用户创建会话",
  307. appId: "10000",
  308. nowFormat: "2022-08-02 12:12:12",
  309. },
  310. },
  311. }
  312. for _, tt := range tests {
  313. t.Run(tt.name, func(t *testing.T) {
  314. m := &MessaggeService{}
  315. if got, _ := m.SaveAutoReplyMsg(tt.args.userType, tt.args.entId, tt.args.entUserId, tt.args.userId, tt.args.content, tt.args.appId, tt.args.nowFormat); got != tt.want {
  316. t.Errorf("SaveAutoReplyMsg() = %v, want %v", got, tt.want)
  317. }
  318. })
  319. }
  320. }
  321. func TestMessaggeService_SaveMessage(t *testing.T) {
  322. type args struct {
  323. in *messagecenter.MessageEntity
  324. }
  325. tests := []struct {
  326. name string
  327. args args
  328. wantErrorCode bool
  329. wantErrorMsg string
  330. wantContent string
  331. wantMessageId int64
  332. }{
  333. // TODO: Add test cases.
  334. {name: "1、用户给客服发送信息",
  335. args: args{
  336. in: &messagecenter.MessageEntity{
  337. Title: "11",
  338. Content: "问在吗?",
  339. Item: 8,
  340. ItemType: 5,
  341. Link: "1111",
  342. Appid: "10000",
  343. ReceiveId: 514,
  344. OwnType: int64(1),
  345. Type: 1,
  346. NewUserId: 10,
  347. },
  348. },
  349. }, {name: "2、用户给机器人发送信息",
  350. args: args{
  351. in: &messagecenter.MessageEntity{
  352. Title: "11",
  353. Content: "问在吗?",
  354. Item: 8,
  355. ItemType: 4,
  356. Link: "1111",
  357. Appid: "10000",
  358. ReceiveId: 514,
  359. OwnType: int64(1),
  360. Type: 1,
  361. NewUserId: 10,
  362. },
  363. },
  364. }, {name: "3、机器人给用户发送信息",
  365. args: args{
  366. in: &messagecenter.MessageEntity{
  367. Title: "11",
  368. Content: "问在吗?",
  369. Item: 8,
  370. ItemType: 4,
  371. Link: "1111",
  372. Appid: "10000",
  373. SendId: 514,
  374. OwnType: int64(2),
  375. Type: 1,
  376. NewUserId: 10,
  377. },
  378. },
  379. }, {name: "4、人工客服给用户发送信息",
  380. args: args{
  381. in: &messagecenter.MessageEntity{
  382. Title: "11",
  383. Content: "问在吗?",
  384. Item: 8,
  385. ItemType: 4,
  386. Link: "1111",
  387. Appid: "10000",
  388. ReceiveId: 10,
  389. SendId: 514,
  390. OwnType: int64(2),
  391. Type: 1,
  392. NewUserId: 10,
  393. },
  394. },
  395. }, {name: "5、用户给用户发送信息",
  396. args: args{
  397. in: &messagecenter.MessageEntity{
  398. Title: "11",
  399. Content: "问在吗11111?",
  400. Item: 8,
  401. ItemType: 2,
  402. Link: "1111",
  403. Appid: "10000",
  404. ReceiveId: 831,
  405. OwnType: int64(2),
  406. Type: 1,
  407. NewUserId: 10,
  408. },
  409. },
  410. }, {name: "6、机器人给用户发送信息",
  411. args: args{
  412. in: &messagecenter.MessageEntity{
  413. Title: "11",
  414. Content: "问在吗?",
  415. Item: 8,
  416. ItemType: 6,
  417. Link: "1111",
  418. Appid: "10000",
  419. ReceiveId: 514,
  420. OwnType: int64(1),
  421. Type: 1,
  422. NewUserId: 10,
  423. },
  424. },
  425. },
  426. {name: "7、机器人给用户发送信息",
  427. args: args{
  428. in: &messagecenter.MessageEntity{
  429. Title: "11",
  430. Content: "问在吗111?",
  431. Item: 8,
  432. ItemType: 6,
  433. Link: "1111",
  434. Appid: "10000",
  435. SendId: 514,
  436. OwnType: int64(2),
  437. ReceiveId: 10,
  438. Type: 1,
  439. NewUserId: 10,
  440. },
  441. }},
  442. {name: "8、机器人给用户发送信息",
  443. args: args{
  444. in: &messagecenter.MessageEntity{
  445. Title: "11",
  446. Content: "问在吗?",
  447. Item: 8,
  448. ItemType: 6,
  449. Link: "1111",
  450. Appid: "10000",
  451. SendId: 2,
  452. OwnType: int64(2),
  453. Type: 1,
  454. NewUserId: 10,
  455. },
  456. }},
  457. {name: "9、机器人给用户发送信息",
  458. args: args{
  459. in: &messagecenter.MessageEntity{
  460. Title: "11",
  461. Content: "问在吗?",
  462. Item: 8,
  463. ItemType: 6,
  464. Link: "1111",
  465. Appid: "10000",
  466. SendId: 3,
  467. OwnType: int64(2),
  468. Type: 1,
  469. NewUserId: 10,
  470. },
  471. },
  472. },
  473. {name: "10、机器人接受系统信息",
  474. args: args{
  475. in: &messagecenter.MessageEntity{
  476. Title: "11",
  477. Content: "问在吗?",
  478. Item: 8,
  479. ItemType: 6,
  480. Link: "1111",
  481. Appid: "10000",
  482. NewUserId: 10,
  483. OwnType: int64(3),
  484. Type: 1,
  485. ReceiveId: 514,
  486. },
  487. },
  488. },
  489. {name: "11会话标识不存在",
  490. args: args{
  491. in: &messagecenter.MessageEntity{
  492. Title: "11",
  493. Content: "问在吗?",
  494. Item: 8,
  495. ItemType: 4,
  496. Link: "1111",
  497. Appid: "10000",
  498. ReceiveId: 640,
  499. OwnType: int64(1),
  500. Type: 1,
  501. NewUserId: 10,
  502. },
  503. },
  504. },
  505. {name: "12会话标识不属于此用户",
  506. args: args{
  507. in: &messagecenter.MessageEntity{
  508. Title: "11",
  509. Content: "问在吗?",
  510. Item: 8,
  511. ItemType: 4,
  512. Link: "1111",
  513. Appid: "10000",
  514. ReceiveId: 514,
  515. OwnType: int64(1),
  516. Type: 1,
  517. NewUserId: 20,
  518. },
  519. },
  520. },
  521. }
  522. for _, tt := range tests {
  523. t.Run(tt.name, func(t *testing.T) {
  524. b := MessaggeService{}
  525. gotErrorCode, gotErrorMsg, gotContent, gotMessageId, nowForm := b.SaveMessage(tt.args.in)
  526. log.Println(nowForm)
  527. if gotErrorCode != tt.wantErrorCode {
  528. t.Errorf("SaveMessage() gotErrorCode = %v, want %v", gotErrorCode, tt.wantErrorCode)
  529. }
  530. if gotErrorMsg != tt.wantErrorMsg {
  531. t.Errorf("SaveMessage() gotErrorMsg = %v, want %v", gotErrorMsg, tt.wantErrorMsg)
  532. }
  533. if gotContent != tt.wantContent {
  534. t.Errorf("SaveMessage() gotContent = %v, want %v", gotContent, tt.wantContent)
  535. }
  536. if gotMessageId != tt.wantMessageId {
  537. t.Errorf("SaveMessage() gotMessageId = %v, want %v", gotMessageId, tt.wantMessageId)
  538. }
  539. })
  540. }
  541. }
  542. func TestMessaggeService_UserList(t *testing.T) {
  543. type args struct {
  544. in *messagecenter.UserReq
  545. }
  546. tests := []struct {
  547. name string
  548. args args
  549. wantData *[]map[string]interface{}
  550. wantErr bool
  551. }{
  552. // TODO: Add test cases.
  553. {
  554. name: "客服查询用户列表",
  555. args: args{
  556. in: &messagecenter.UserReq{
  557. Phone: "",
  558. UserType: 1,
  559. StartTime: "2022-01-05 12:12:12",
  560. EndTime: "2022-10-05 12:12:12",
  561. NewUserId: 42941,
  562. EntUserId: 42711,
  563. },
  564. },
  565. }, {
  566. name: "用户列表用户查询",
  567. args: args{
  568. in: &messagecenter.UserReq{
  569. Phone: "",
  570. UserType: 2,
  571. StartTime: "",
  572. EndTime: "",
  573. NewUserId: 42941,
  574. EntUserId: 42711,
  575. },
  576. },
  577. }, {
  578. name: "客服用户列表用户查询",
  579. args: args{
  580. in: &messagecenter.UserReq{
  581. Phone: "",
  582. UserType: 1,
  583. StartTime: "",
  584. EndTime: "",
  585. NewUserId: 4338,
  586. EntUserId: 14929,
  587. },
  588. },
  589. },
  590. }
  591. for _, tt := range tests {
  592. t.Run(tt.name, func(t *testing.T) {
  593. b := MessaggeService{}
  594. gotData, _, err := b.UserList(tt.args.in)
  595. if (err != nil) != tt.wantErr {
  596. t.Errorf("UserList() error = %v, wantErr %v", err, tt.wantErr)
  597. return
  598. }
  599. if !reflect.DeepEqual(gotData, tt.wantData) {
  600. t.Errorf("UserList() gotData = %v, want %v", gotData, tt.wantData)
  601. }
  602. })
  603. }
  604. }
  605. func TestMessaggeService_UpdateReadById(t *testing.T) {
  606. type args struct {
  607. in *messagecenter.ReadStateReq
  608. }
  609. tests := []struct {
  610. name string
  611. args args
  612. wantErrorCode bool
  613. }{
  614. // TODO: Add test cases.
  615. {
  616. name: "已读状态修改",
  617. args: args{
  618. in: &messagecenter.ReadStateReq{
  619. MessageId: 11612,
  620. },
  621. },
  622. wantErrorCode: true,
  623. },
  624. }
  625. for _, tt := range tests {
  626. t.Run(tt.name, func(t *testing.T) {
  627. b := MessaggeService{}
  628. if gotErrorCode := b.UpdateReadById(tt.args.in); gotErrorCode != tt.wantErrorCode {
  629. t.Errorf("UpdateReadById() = %v, want %v", gotErrorCode, tt.wantErrorCode)
  630. }
  631. })
  632. }
  633. }