knowledgeService_test.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. package service
  2. import (
  3. elastic "app.yhyue.com/moapp/jybase/esv1"
  4. "app.yhyue.com/moapp/jybase/mysql"
  5. "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
  6. "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/entity"
  7. "bp.jydev.jianyu360.cn/SocialPlatform/knowledgeBase/rpc/knowledge/knowledge"
  8. "github.com/zeromicro/go-zero/core/discov"
  9. "github.com/zeromicro/go-zero/zrpc"
  10. "reflect"
  11. "testing"
  12. )
  13. func initMysql() {
  14. entity.Mysql = &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. entity.Mysql.Init()
  23. elastic.InitElasticSize("http://192.168.3.204:1500", 10)
  24. //初始化资源中台相关
  25. userCenterClient := zrpc.MustNewClient(zrpc.RpcClientConf{
  26. Etcd: discov.EtcdConf{
  27. Hosts: []string{"192.168.3.240:2379"},
  28. Key: "usercenter.rpc",
  29. },
  30. })
  31. entity.UserCenterLib = usercenter.NewUserCenter(userCenterClient)
  32. }
  33. func init() {
  34. initMysql()
  35. }
  36. func TestKnowledgeService_FindAnswer(t *testing.T) {
  37. type args struct {
  38. param *knowledge.FindAnswerReq
  39. addr string
  40. index string
  41. segment string
  42. }
  43. tests := []struct {
  44. name string
  45. args args
  46. want *knowledge.Question
  47. }{
  48. {
  49. name: "根据问题查询答案",
  50. args: args{
  51. param: &knowledge.FindAnswerReq{
  52. Type: 1,
  53. Question: "订阅购买",
  54. RobotEntId: "455b495c5c",
  55. },
  56. addr: "http://192.168.3.204:1500",
  57. index: "smart_new",
  58. segment: "http://192.168.3.204:9070/api/segment",
  59. },
  60. },
  61. {
  62. name: "根据问题查询答案",
  63. args: args{
  64. param: &knowledge.FindAnswerReq{
  65. Type: 1,
  66. Question: "大会员怎么收费",
  67. RobotEntId: "455b495c5c",
  68. },
  69. addr: "http://192.168.3.204:1500",
  70. index: "smart_new",
  71. segment: "http://192.168.3.204:9070/api/segment",
  72. },
  73. },
  74. {
  75. name: "根据问题查询答案",
  76. args: args{
  77. param: &knowledge.FindAnswerReq{
  78. Type: 2,
  79. Question: "超级订阅为什么购买不了",
  80. RobotEntId: "455b495c5c",
  81. },
  82. addr: "http://192.168.3.204:1500",
  83. index: "smart_new",
  84. segment: "http://192.168.3.204:9070/api/segment",
  85. },
  86. },
  87. {
  88. name: "根据问题查询答案",
  89. args: args{
  90. param: &knowledge.FindAnswerReq{
  91. Type: 1,
  92. Question: "我",
  93. RobotEntId: "455b495c5c",
  94. },
  95. addr: "http://192.168.3.204:1500",
  96. index: "smart_new",
  97. segment: "http://192.168.3.204:9070/api/segment",
  98. },
  99. },
  100. {
  101. name: "根据问题查询答案",
  102. args: args{
  103. param: &knowledge.FindAnswerReq{
  104. Type: 1,
  105. Question: "我得问题",
  106. RobotEntId: "123",
  107. },
  108. addr: "http://192.168.3.204:1500",
  109. index: "smart_new",
  110. segment: "http://192.168.3.204:9070/api/segment",
  111. },
  112. },
  113. }
  114. for _, tt := range tests {
  115. t.Run(tt.name, func(t *testing.T) {
  116. k := &KnowledgeService{}
  117. if got := k.FindAnswer(tt.args.param, tt.args.addr, tt.args.index, tt.args.segment); !reflect.DeepEqual(got, tt.want) {
  118. t.Errorf("FindAnswer() = %v, want %v", got, tt.want)
  119. }
  120. })
  121. }
  122. }
  123. func TestKnowledgeService_KnowledgeAdd(t *testing.T) {
  124. type args struct {
  125. param *knowledge.AddRequest
  126. segment string
  127. }
  128. tests := []struct {
  129. name string
  130. args args
  131. want bool
  132. want1 string
  133. wantErr bool
  134. }{
  135. {
  136. name: "知识添加",
  137. args: args{
  138. param: &knowledge.AddRequest{
  139. Question: "任姣姣测试的测添加问题",
  140. Answer: "答案",
  141. AppId: "10000",
  142. EntUserId: 4315,
  143. EntId: 14929,
  144. },
  145. segment: "http://192.168.3.204:9070/api/segment",
  146. },
  147. want: true,
  148. want1: "插入es成功",
  149. },
  150. {
  151. name: "知识添加",
  152. args: args{
  153. param: &knowledge.AddRequest{
  154. Question: "我",
  155. Answer: "答案",
  156. AppId: "10000",
  157. EntUserId: 4315,
  158. EntId: 14929,
  159. },
  160. segment: "http://192.168.3.204:9070/api/segment",
  161. },
  162. want: true,
  163. want1: "插入es成功",
  164. },
  165. {
  166. name: "知识添加",
  167. args: args{
  168. param: &knowledge.AddRequest{
  169. Question: "我",
  170. Answer: "答案",
  171. AppId: "10000",
  172. EntUserId: 4315,
  173. EntId: 14920,
  174. },
  175. segment: "http://192.168.3.204:9070/api/segment",
  176. },
  177. want: false,
  178. want1: "插入es成功",
  179. },
  180. {
  181. name: "知识添加",
  182. args: args{
  183. param: &knowledge.AddRequest{
  184. Question: "任姣姣测试的测添加问题",
  185. Answer: "答案",
  186. AppId: "10000",
  187. EntId: 14929,
  188. },
  189. segment: "http://192.168.3.204:9070/api/segment",
  190. },
  191. want: true,
  192. want1: "插入es成功",
  193. },
  194. {
  195. name: "知识添加",
  196. args: args{
  197. param: &knowledge.AddRequest{
  198. Question: "拓普公司发展二十年,步入全新的发展阶段,随着数字化的发展,客户对于数字化转型的认知也不断提升,甲方对乙方的要求也发生了变化,只有真正解决问题的信息化,只有真正实现降本、提质、增效,才能真正实现数字化转型带来的治理能力的提升。拓普就是真正解决问题的公司!我们坚持“实体创新,数字倍增”的产品战略,提供走进用户、研究业务、解决问题、达成目标的数字化转型方案和产品,这种新型现代智能服务业态,才是符合当今时代要求的。新时代是新的机遇,也带来新的挑战。公司在二十多年的发展的同时,也积累了许多问题,我们要敢于直面问题并解决问题,这样才能抓住机遇、重装上阵、御风而行、高速发展。过去两年的公司改革并没有触及问题的核心,所以并没解决实质的问题。2022年公司开始痛定思痛直面问题,刀刃向内深度改革,解决影响公司发展的基层因素。2022年的拓普,就是中国发展历史的1992年,要拿出92年中国改革的决心和勇气,我们才有可能赢!这个过程中有质疑、不解和各种评判是正常的,只要我们把公司和集体利益放在第一位,把个人利益同步到公司利益上,做公司和集体利益的维护者,我们就能同心同德共赴拓普美好未来。",
  199. Answer: "答案",
  200. AppId: "10000",
  201. EntUserId: 4315,
  202. EntId: 14929,
  203. },
  204. segment: "http://192.168.3.204:9070/api/segment",
  205. },
  206. want: true,
  207. want1: "插入es成功",
  208. },
  209. }
  210. for _, tt := range tests {
  211. t.Run(tt.name, func(t *testing.T) {
  212. k := &KnowledgeService{}
  213. got, got1 := k.KnowledgeAdd(tt.args.param, tt.args.segment)
  214. if got != tt.want {
  215. t.Errorf("KnowledgeAdd() got = %v, want %v", got, tt.want)
  216. }
  217. if got1 != tt.want1 {
  218. t.Errorf("KnowledgeAdd() got1 = %v, want %v", got1, tt.want1)
  219. }
  220. })
  221. }
  222. }
  223. func TestKnowledgeService_KnowledgeDel(t *testing.T) {
  224. type args struct {
  225. answerId int64
  226. }
  227. tests := []struct {
  228. name string
  229. args args
  230. wantOk bool
  231. wantMsg string
  232. }{
  233. {
  234. name: "删除知识",
  235. args: args{
  236. answerId: 30192,
  237. },
  238. },
  239. {
  240. name: "删除知识",
  241. args: args{
  242. answerId: 0,
  243. },
  244. wantOk: false,
  245. },
  246. }
  247. for _, tt := range tests {
  248. t.Run(tt.name, func(t *testing.T) {
  249. k := &KnowledgeService{}
  250. gotOk := k.KnowledgeDel(tt.args.answerId)
  251. if gotOk != tt.wantOk {
  252. t.Errorf("KnowledgeDel() gotOk = %v, want %v", gotOk, tt.wantOk)
  253. }
  254. })
  255. }
  256. }
  257. func TestKnowledgeService_KnowledgeEdit(t *testing.T) {
  258. type args struct {
  259. param *knowledge.KnowledgeEditReq
  260. segment string
  261. }
  262. tests := []struct {
  263. name string
  264. args args
  265. wantOk bool
  266. wantMsg string
  267. wantErr bool
  268. }{
  269. {
  270. name: "知识编辑",
  271. args: args{
  272. param: &knowledge.KnowledgeEditReq{
  273. Question: "任姣姣的编辑知识问题",
  274. Answer: "答案",
  275. AnswerId: 30210,
  276. KnowledgeId: 30005,
  277. EntId: 14929,
  278. EntUserId: 4315,
  279. AppId: "10000",
  280. },
  281. segment: "http://192.168.3.204:9070/api/segment",
  282. },
  283. },
  284. {
  285. name: "知识编辑",
  286. args: args{
  287. param: &knowledge.KnowledgeEditReq{
  288. Question: "",
  289. Answer: "答案",
  290. AnswerId: 30211,
  291. KnowledgeId: 30005,
  292. EntId: 14929,
  293. EntUserId: 4315,
  294. AppId: "10000",
  295. },
  296. segment: "http://192.168.3.204:9070/api/segment",
  297. },
  298. },
  299. {
  300. name: "知识编辑",
  301. args: args{
  302. param: &knowledge.KnowledgeEditReq{
  303. Question: "任姣姣的编辑知识问题",
  304. Answer: "答案",
  305. AnswerId: 123,
  306. KnowledgeId: 30005,
  307. EntId: 14929,
  308. EntUserId: 4315,
  309. AppId: "10000",
  310. },
  311. segment: "http://192.168.3.204:9070/api/segment",
  312. },
  313. },
  314. {
  315. name: "知识编辑",
  316. args: args{
  317. param: &knowledge.KnowledgeEditReq{
  318. Question: "任姣姣的编辑知识问题",
  319. Answer: "答案",
  320. AnswerId: 30210,
  321. KnowledgeId: 30005,
  322. EntId: 14929,
  323. AppId: "10000",
  324. },
  325. segment: "http://192.168.3.204:9070/api/segment",
  326. },
  327. },
  328. {
  329. name: "知识编辑",
  330. args: args{
  331. param: &knowledge.KnowledgeEditReq{
  332. Question: "拓普公司发展二十年,步入全新的发展阶段,随着数字化的发展,客户对于数字化转型的认知也不断提升,甲方对乙方的要求也发生了变化,只有真正解决问题的信息化,只有真正实现降本、提质、增效,才能真正实现数字化转型带来的治理能力的提升。拓普就是真正解决问题的公司!我们坚持“实体创新,数字倍增”的产品战略,提供走进用户、研究业务、解决问题、达成目标的数字化转型方案和产品,这种新型现代智能服务业态,才是符合当今时代要求的。新时代是新的机遇,也带来新的挑战。公司在二十多年的发展的同时,也积累了许多问题,我们要敢于直面问题并解决问题,这样才能抓住机遇、重装上阵、御风而行、高速发展。过去两年的公司改革并没有触及问题的核心,所以并没解决实质的问题。2022年公司开始痛定思痛直面问题,刀刃向内深度改革,解决影响公司发展的基层因素。2022年的拓普,就是中国发展历史的1992年,要拿出92年中国改革的决心和勇气,我们才有可能赢!这个过程中有质疑、不解和各种评判是正常的,只要我们把公司和集体利益放在第一位,把个人利益同步到公司利益上,做公司和集体利益的维护者,我们就能同心同德共赴拓普美好未来。",
  333. Answer: "答案",
  334. AnswerId: 30210,
  335. KnowledgeId: 30005,
  336. EntId: 14929,
  337. EntUserId: 4315,
  338. AppId: "10000",
  339. },
  340. segment: "http://192.168.3.204:9070/api/segment",
  341. },
  342. },
  343. }
  344. for _, tt := range tests {
  345. t.Run(tt.name, func(t *testing.T) {
  346. k := &KnowledgeService{}
  347. gotOk := k.KnowledgeEdit(tt.args.param, tt.args.segment)
  348. if gotOk != tt.wantOk {
  349. t.Errorf("KnowledgeEdit() gotOk = %v, want %v", gotOk, tt.wantOk)
  350. }
  351. })
  352. }
  353. }
  354. func TestKnowledgeService_KnowledgeInfo(t *testing.T) {
  355. type args struct {
  356. answerId int64
  357. }
  358. tests := []struct {
  359. name string
  360. args args
  361. wantData *knowledge.KnowledgeEntity
  362. wantOk bool
  363. }{
  364. {
  365. name: "知识详情",
  366. args: args{
  367. answerId: 30191,
  368. },
  369. wantOk: true,
  370. },
  371. {
  372. name: "知识详情",
  373. args: args{
  374. answerId: 1,
  375. },
  376. wantOk: true,
  377. },
  378. }
  379. for _, tt := range tests {
  380. t.Run(tt.name, func(t *testing.T) {
  381. k := &KnowledgeService{}
  382. gotData, gotOk := k.KnowledgeInfo(tt.args.answerId)
  383. if !reflect.DeepEqual(gotData, tt.wantData) {
  384. t.Errorf("KnowledgeInfo() gotData = %v, want %v", gotData, tt.wantData)
  385. }
  386. if gotOk != tt.wantOk {
  387. t.Errorf("KnowledgeInfo() gotOk = %v, want %v", gotOk, tt.wantOk)
  388. }
  389. })
  390. }
  391. }
  392. func TestKnowledgeService_KnowledgeList(t *testing.T) {
  393. type args struct {
  394. param *knowledge.ListRequest
  395. }
  396. tests := []struct {
  397. name string
  398. args args
  399. want *knowledge.ListData
  400. }{
  401. {
  402. name: "知识列表",
  403. args: args{
  404. param: &knowledge.ListRequest{
  405. PageSize: 20,
  406. PageIndex: 1,
  407. EntId: 14929,
  408. },
  409. },
  410. },
  411. }
  412. for _, tt := range tests {
  413. t.Run(tt.name, func(t *testing.T) {
  414. k := &KnowledgeService{}
  415. if got := k.KnowledgeList(tt.args.param); !reflect.DeepEqual(got, tt.want) {
  416. t.Errorf("KnowledgeList() = %v, want %v", got, tt.want)
  417. }
  418. })
  419. }
  420. }
  421. func TestKnowledgeService_RecommendAnswer(t *testing.T) {
  422. type args struct {
  423. param *knowledge.FindAnswerReq
  424. segment string
  425. }
  426. tests := []struct {
  427. name string
  428. args args
  429. want []*knowledge.Question
  430. }{
  431. {
  432. name: "根据问题查询答案",
  433. args: args{
  434. param: &knowledge.FindAnswerReq{
  435. Type: 1,
  436. Question: "订阅购买",
  437. RobotEntId: "455b495c5c",
  438. },
  439. segment: "http://192.168.3.204:9070/api/segment",
  440. },
  441. },
  442. {
  443. name: "根据问题查询答案",
  444. args: args{
  445. param: &knowledge.FindAnswerReq{
  446. Type: 1,
  447. Question: "我的",
  448. RobotEntId: "455b495c5c",
  449. },
  450. segment: "http://192.168.3.204:9070/api/segment",
  451. },
  452. },
  453. {
  454. name: "根据问题查询答案",
  455. args: args{
  456. param: &knowledge.FindAnswerReq{
  457. Type: 1,
  458. Question: "大会员怎么收费",
  459. RobotEntId: "455b495c5c",
  460. },
  461. segment: "http://192.168.3.204:9070/api/segment",
  462. },
  463. },
  464. }
  465. for _, tt := range tests {
  466. t.Run(tt.name, func(t *testing.T) {
  467. k := &KnowledgeService{}
  468. if got := k.RecommendAnswer(tt.args.param, tt.args.segment); !reflect.DeepEqual(got, tt.want) {
  469. t.Errorf("RecommendAnswer() = %v, want %v", got, tt.want)
  470. }
  471. })
  472. }
  473. }