message_mail_box_test.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687
  1. package service
  2. import (
  3. "log"
  4. "reflect"
  5. "strings"
  6. "testing"
  7. "app.yhyue.com/moapp/jybase/mysql"
  8. "app.yhyue.com/moapp/jybase/redis"
  9. IC "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
  10. "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
  11. _ "github.com/go-sql-driver/mysql"
  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=192.168.3.11:1712"}, ","), 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)
  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. /*
  153. func TestMessaggeService_FindMessage(t *testing.T) {
  154. type args struct {
  155. in *messagecenter.MessageReq
  156. }
  157. tests := []struct {
  158. name string
  159. args args
  160. want *[]map[string]interface{}
  161. want1 int64
  162. }{
  163. // TODO: Add test cases.
  164. {
  165. name: "客服获取历史信息查询",
  166. args: args{in: &messagecenter.MessageReq{
  167. MsgType: 5,
  168. UserType: 1,
  169. SendId: 10,
  170. PageSize: 10,
  171. NewUserId: 4338,
  172. EntId: 1,
  173. }},
  174. want1: 0,
  175. }, {
  176. name: "客服获取历史信息查询升序",
  177. args: args{in: &messagecenter.MessageReq{
  178. MsgType: 4,
  179. UserType: 1,
  180. SendId: 10,
  181. PageSize: 10,
  182. NewUserId: 10,
  183. EntId: 1,
  184. Sort: "asc",
  185. LastId: 18277,
  186. }},
  187. want1: 0,
  188. },
  189. {
  190. name: "客服获取历史信息查询降序",
  191. args: args{in: &messagecenter.MessageReq{
  192. MsgType: 4,
  193. UserType: 1,
  194. SendId: 10,
  195. PageSize: 10,
  196. NewUserId: 10,
  197. EntId: 1,
  198. Sort: "desc",
  199. LastId: 18277,
  200. }},
  201. want1: 0,
  202. },
  203. {
  204. name: "用户获取客服历史信息查询",
  205. args: args{in: &messagecenter.MessageReq{
  206. MsgType: 4,
  207. UserType: 2,
  208. SendId: 1,
  209. PageSize: 10,
  210. NewUserId: 10,
  211. EntId: 1,
  212. }},
  213. want1: 0,
  214. },
  215. {
  216. name: "用户获取历史信息查询",
  217. args: args{in: &messagecenter.MessageReq{
  218. MsgType: 2,
  219. UserType: 2,
  220. SendId: 10,
  221. PageSize: 10,
  222. NewUserId: 10,
  223. }},
  224. want1: 0,
  225. }, {
  226. name: "用户获取历史信息查询",
  227. args: args{in: &messagecenter.MessageReq{
  228. MsgType: 5,
  229. UserType: 2,
  230. SendId: 1,
  231. PageSize: 10,
  232. NewUserId: 10,
  233. }},
  234. want1: 0,
  235. },
  236. {
  237. name: "用户获取历史信息查询",
  238. args: args{in: &messagecenter.MessageReq{
  239. MsgType: 2,
  240. UserType: 2,
  241. SendId: 10,
  242. PageSize: 10,
  243. NewUserId: 831,
  244. EntId: 1,
  245. LastId: 200000,
  246. }},
  247. want1: 0,
  248. },
  249. }
  250. for _, tt := range tests {
  251. t.Run(tt.name, func(t *testing.T) {
  252. b := MessaggeService{}
  253. got := b.FindMessage(tt.args.in)
  254. if !reflect.DeepEqual(got, tt.want) {
  255. t.Errorf("FindMessage() got = %v, want %v", got, tt.want)
  256. }
  257. })
  258. }
  259. }
  260. */
  261. func TestMessaggeService_SaveAutoReplyMsg(t *testing.T) {
  262. type args struct {
  263. userType int64
  264. entId int64
  265. entUserId int64
  266. userId int64
  267. content string
  268. appId string
  269. nowFormat string
  270. }
  271. tests := []struct {
  272. name string
  273. args args
  274. want bool
  275. }{
  276. // TODO: Add test cases.
  277. {
  278. name: "会话保存以及消息保存",
  279. args: args{
  280. userType: 1,
  281. entId: 14184,
  282. entUserId: 3,
  283. userId: 831,
  284. content: "你与用户创建会话",
  285. appId: "10000",
  286. nowFormat: "2022-08-02 12:12:12",
  287. },
  288. },
  289. {
  290. name: "会话保存以及消息保存",
  291. args: args{
  292. userType: 2,
  293. entId: 14184,
  294. entUserId: 3,
  295. userId: 831,
  296. content: "你与用户创建会话",
  297. appId: "10000",
  298. nowFormat: "2022-08-02 12:12:12",
  299. },
  300. },
  301. {
  302. name: "会话保存以及消息保存",
  303. args: args{
  304. userType: 0,
  305. entId: 14184,
  306. entUserId: 3,
  307. userId: 831,
  308. content: "你与用户创建会话",
  309. appId: "10000",
  310. nowFormat: "2022-08-02 12:12:12",
  311. },
  312. },
  313. }
  314. for _, tt := range tests {
  315. t.Run(tt.name, func(t *testing.T) {
  316. m := &MessaggeService{}
  317. 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 {
  318. t.Errorf("SaveAutoReplyMsg() = %v, want %v", got, tt.want)
  319. }
  320. })
  321. }
  322. }
  323. func TestMessaggeService_SaveMessage(t *testing.T) {
  324. type args struct {
  325. in *messagecenter.MessageEntity
  326. }
  327. tests := []struct {
  328. name string
  329. args args
  330. wantErrorCode bool
  331. wantErrorMsg string
  332. wantContent string
  333. wantMessageId int64
  334. }{
  335. // TODO: Add test cases.
  336. {name: "1、用户给客服发送信息",
  337. args: args{
  338. in: &messagecenter.MessageEntity{
  339. Title: "11",
  340. Content: "问在吗?",
  341. Item: 8,
  342. ItemType: 5,
  343. Link: "1111",
  344. Appid: "10000",
  345. ReceiveId: 514,
  346. OwnType: int64(1),
  347. Type: 1,
  348. NewUserId: 10,
  349. },
  350. },
  351. }, {name: "2、用户给机器人发送信息",
  352. args: args{
  353. in: &messagecenter.MessageEntity{
  354. Title: "11",
  355. Content: "问在吗?",
  356. Item: 8,
  357. ItemType: 4,
  358. Link: "1111",
  359. Appid: "10000",
  360. ReceiveId: 514,
  361. OwnType: int64(1),
  362. Type: 1,
  363. NewUserId: 10,
  364. },
  365. },
  366. }, {name: "3、机器人给用户发送信息",
  367. args: args{
  368. in: &messagecenter.MessageEntity{
  369. Title: "11",
  370. Content: "问在吗?",
  371. Item: 8,
  372. ItemType: 4,
  373. Link: "1111",
  374. Appid: "10000",
  375. SendId: 514,
  376. OwnType: int64(2),
  377. Type: 1,
  378. NewUserId: 10,
  379. },
  380. },
  381. }, {name: "4、人工客服给用户发送信息",
  382. args: args{
  383. in: &messagecenter.MessageEntity{
  384. Title: "11",
  385. Content: "问在吗?",
  386. Item: 8,
  387. ItemType: 4,
  388. Link: "1111",
  389. Appid: "10000",
  390. ReceiveId: 10,
  391. SendId: 514,
  392. OwnType: int64(2),
  393. Type: 1,
  394. NewUserId: 10,
  395. },
  396. },
  397. }, {name: "5、用户给用户发送信息",
  398. args: args{
  399. in: &messagecenter.MessageEntity{
  400. Title: "11",
  401. Content: "问在吗11111?",
  402. Item: 8,
  403. ItemType: 2,
  404. Link: "1111",
  405. Appid: "10000",
  406. ReceiveId: 831,
  407. OwnType: int64(2),
  408. Type: 1,
  409. NewUserId: 10,
  410. },
  411. },
  412. }, {name: "6、机器人给用户发送信息",
  413. args: args{
  414. in: &messagecenter.MessageEntity{
  415. Title: "11",
  416. Content: "问在吗?",
  417. Item: 8,
  418. ItemType: 6,
  419. Link: "1111",
  420. Appid: "10000",
  421. ReceiveId: 514,
  422. OwnType: int64(1),
  423. Type: 1,
  424. NewUserId: 10,
  425. },
  426. },
  427. },
  428. {name: "7、机器人给用户发送信息",
  429. args: args{
  430. in: &messagecenter.MessageEntity{
  431. Title: "11",
  432. Content: "问在吗111?",
  433. Item: 8,
  434. ItemType: 6,
  435. Link: "1111",
  436. Appid: "10000",
  437. SendId: 514,
  438. OwnType: int64(2),
  439. ReceiveId: 10,
  440. Type: 1,
  441. NewUserId: 10,
  442. },
  443. }},
  444. {name: "8、机器人给用户发送信息",
  445. args: args{
  446. in: &messagecenter.MessageEntity{
  447. Title: "11",
  448. Content: "问在吗?",
  449. Item: 8,
  450. ItemType: 6,
  451. Link: "1111",
  452. Appid: "10000",
  453. SendId: 2,
  454. OwnType: int64(2),
  455. Type: 1,
  456. NewUserId: 10,
  457. },
  458. }},
  459. {name: "9、机器人给用户发送信息",
  460. args: args{
  461. in: &messagecenter.MessageEntity{
  462. Title: "11",
  463. Content: "问在吗?",
  464. Item: 8,
  465. ItemType: 6,
  466. Link: "1111",
  467. Appid: "10000",
  468. SendId: 3,
  469. OwnType: int64(2),
  470. Type: 1,
  471. NewUserId: 10,
  472. },
  473. },
  474. },
  475. {name: "10、机器人接受系统信息",
  476. args: args{
  477. in: &messagecenter.MessageEntity{
  478. Title: "11",
  479. Content: "问在吗?",
  480. Item: 8,
  481. ItemType: 6,
  482. Link: "1111",
  483. Appid: "10000",
  484. NewUserId: 10,
  485. OwnType: int64(3),
  486. Type: 1,
  487. ReceiveId: 514,
  488. },
  489. },
  490. },
  491. {name: "11会话标识不存在",
  492. args: args{
  493. in: &messagecenter.MessageEntity{
  494. Title: "11",
  495. Content: "问在吗?",
  496. Item: 8,
  497. ItemType: 4,
  498. Link: "1111",
  499. Appid: "10000",
  500. ReceiveId: 640,
  501. OwnType: int64(1),
  502. Type: 1,
  503. NewUserId: 10,
  504. },
  505. },
  506. },
  507. {name: "12会话标识不属于此用户",
  508. args: args{
  509. in: &messagecenter.MessageEntity{
  510. Title: "11",
  511. Content: "问在吗?",
  512. Item: 8,
  513. ItemType: 4,
  514. Link: "1111",
  515. Appid: "10000",
  516. ReceiveId: 514,
  517. OwnType: int64(1),
  518. Type: 1,
  519. NewUserId: 20,
  520. },
  521. },
  522. },
  523. }
  524. for _, tt := range tests {
  525. t.Run(tt.name, func(t *testing.T) {
  526. b := MessaggeService{}
  527. gotErrorCode, gotErrorMsg, gotContent, gotMessageId, nowForm := b.SaveMessage(tt.args.in)
  528. log.Println(nowForm)
  529. if gotErrorCode != tt.wantErrorCode {
  530. t.Errorf("SaveMessage() gotErrorCode = %v, want %v", gotErrorCode, tt.wantErrorCode)
  531. }
  532. if gotErrorMsg != tt.wantErrorMsg {
  533. t.Errorf("SaveMessage() gotErrorMsg = %v, want %v", gotErrorMsg, tt.wantErrorMsg)
  534. }
  535. if gotContent != tt.wantContent {
  536. t.Errorf("SaveMessage() gotContent = %v, want %v", gotContent, tt.wantContent)
  537. }
  538. if gotMessageId != tt.wantMessageId {
  539. t.Errorf("SaveMessage() gotMessageId = %v, want %v", gotMessageId, tt.wantMessageId)
  540. }
  541. })
  542. }
  543. }
  544. func TestMessaggeService_UserList(t *testing.T) {
  545. type args struct {
  546. in *messagecenter.UserReq
  547. }
  548. tests := []struct {
  549. name string
  550. args args
  551. wantData *[]map[string]interface{}
  552. wantErr bool
  553. }{
  554. // TODO: Add test cases.
  555. {
  556. name: "客服查询用户列表",
  557. args: args{
  558. in: &messagecenter.UserReq{
  559. Phone: "",
  560. UserType: 1,
  561. StartTime: "2022-01-05 12:12:12",
  562. EndTime: "2022-10-05 12:12:12",
  563. NewUserId: 42941,
  564. EntUserId: 42711,
  565. },
  566. },
  567. }, {
  568. name: "用户列表用户查询",
  569. args: args{
  570. in: &messagecenter.UserReq{
  571. Phone: "",
  572. UserType: 2,
  573. StartTime: "",
  574. EndTime: "",
  575. NewUserId: 42941,
  576. EntUserId: 42711,
  577. },
  578. },
  579. }, {
  580. name: "客服用户列表用户查询",
  581. args: args{
  582. in: &messagecenter.UserReq{
  583. Phone: "",
  584. UserType: 1,
  585. StartTime: "",
  586. EndTime: "",
  587. NewUserId: 4338,
  588. EntUserId: 14929,
  589. },
  590. },
  591. },
  592. }
  593. for _, tt := range tests {
  594. t.Run(tt.name, func(t *testing.T) {
  595. b := MessaggeService{}
  596. gotData, _, err := b.UserList(tt.args.in)
  597. if (err != nil) != tt.wantErr {
  598. t.Errorf("UserList() error = %v, wantErr %v", err, tt.wantErr)
  599. return
  600. }
  601. if !reflect.DeepEqual(gotData, tt.wantData) {
  602. t.Errorf("UserList() gotData = %v, want %v", gotData, tt.wantData)
  603. }
  604. })
  605. }
  606. }
  607. func TestMessaggeService_UpdateReadById(t *testing.T) {
  608. type args struct {
  609. in *messagecenter.ReadStateReq
  610. }
  611. tests := []struct {
  612. name string
  613. args args
  614. wantErrorCode bool
  615. }{
  616. // TODO: Add test cases.
  617. {
  618. name: "已读状态修改",
  619. args: args{
  620. in: &messagecenter.ReadStateReq{
  621. MessageId: 11612,
  622. },
  623. },
  624. wantErrorCode: true,
  625. },
  626. }
  627. for _, tt := range tests {
  628. t.Run(tt.name, func(t *testing.T) {
  629. b := MessaggeService{}
  630. if gotErrorCode := b.UpdateReadById(tt.args.in); gotErrorCode != tt.wantErrorCode {
  631. t.Errorf("UpdateReadById() = %v, want %v", gotErrorCode, tt.wantErrorCode)
  632. }
  633. })
  634. }
  635. }
  636. func TestChat(t *testing.T) {
  637. type args struct {
  638. in *messagecenter.MessageSaveReq
  639. }
  640. tests := []struct {
  641. name string
  642. args args
  643. wantErrorCode bool
  644. wantErrorMsg string
  645. wantContent string
  646. wantMessageId int64
  647. }{
  648. {name: "发送群聊",
  649. args: args{
  650. in: &messagecenter.MessageSaveReq{
  651. Title: "标题?",
  652. Content: "hello world1",
  653. Item: 8,
  654. MessageType: 1,
  655. Link: "",
  656. Appid: "10000",
  657. ReceiverIds: []int64{1, 2, 3},
  658. GroupIds: []int64{8},
  659. Type: 1,
  660. SendId: 333,
  661. },
  662. },
  663. },
  664. }
  665. for _, tt := range tests {
  666. t.Run(tt.name, func(t *testing.T) {
  667. b := MessaggeService{}
  668. b.Chat(tt.args.in)
  669. })
  670. }
  671. }