knowledgeService_test.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  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/knowledgeclient"
  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 *knowledgeclient.FindAnswerReq
  39. addr string
  40. index string
  41. segment string
  42. }
  43. tests := []struct {
  44. name string
  45. args args
  46. want *knowledgeclient.Question
  47. }{
  48. {
  49. name: "根据问题查询答案",
  50. args: args{
  51. param: &knowledgeclient.FindAnswerReq{
  52. Type: 1,
  53. Question: "超级订阅为什么购买不了",
  54. RobotEntId: "14929",
  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: &knowledgeclient.FindAnswerReq{
  65. Type: 2,
  66. Question: "超级订阅为什么购买不了",
  67. RobotEntId: "14929",
  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: &knowledgeclient.FindAnswerReq{
  78. Type: 1,
  79. Question: "我",
  80. RobotEntId: "14929",
  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: &knowledgeclient.FindAnswerReq{
  91. Type: 1,
  92. Question: "我得问题",
  93. RobotEntId: "123",
  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. for _, tt := range tests {
  102. t.Run(tt.name, func(t *testing.T) {
  103. k := &KnowledgeService{}
  104. if got := k.FindAnswer(tt.args.param, tt.args.addr, tt.args.index, tt.args.segment); !reflect.DeepEqual(got, tt.want) {
  105. t.Errorf("FindAnswer() = %v, want %v", got, tt.want)
  106. }
  107. })
  108. }
  109. }
  110. func TestKnowledgeService_KnowledgeAdd(t *testing.T) {
  111. type args struct {
  112. param *knowledgeclient.AddRequest
  113. segment string
  114. }
  115. tests := []struct {
  116. name string
  117. args args
  118. want bool
  119. want1 string
  120. wantErr bool
  121. }{
  122. {
  123. name: "知识添加",
  124. args: args{
  125. param: &knowledgeclient.AddRequest{
  126. Question: "任姣姣测试的测添加问题",
  127. Answer: "答案",
  128. AppId: "10000",
  129. EntUserId: 4315,
  130. EntId: 14929,
  131. },
  132. segment: "http://192.168.3.204:9070/api/segment",
  133. },
  134. want: true,
  135. want1: "插入es成功",
  136. },
  137. }
  138. for _, tt := range tests {
  139. t.Run(tt.name, func(t *testing.T) {
  140. k := &KnowledgeService{}
  141. got, got1, err := k.KnowledgeAdd(tt.args.param, tt.args.segment)
  142. if (err != nil) != tt.wantErr {
  143. t.Errorf("KnowledgeAdd() error = %v, wantErr %v", err, tt.wantErr)
  144. return
  145. }
  146. if got != tt.want {
  147. t.Errorf("KnowledgeAdd() got = %v, want %v", got, tt.want)
  148. }
  149. if got1 != tt.want1 {
  150. t.Errorf("KnowledgeAdd() got1 = %v, want %v", got1, tt.want1)
  151. }
  152. })
  153. }
  154. }
  155. func TestKnowledgeService_KnowledgeDel(t *testing.T) {
  156. type args struct {
  157. answerId int64
  158. }
  159. tests := []struct {
  160. name string
  161. args args
  162. wantOk bool
  163. wantMsg string
  164. }{
  165. {
  166. name: "删除知识",
  167. args: args{
  168. answerId: 30192,
  169. },
  170. },
  171. }
  172. for _, tt := range tests {
  173. t.Run(tt.name, func(t *testing.T) {
  174. k := &KnowledgeService{}
  175. gotOk, gotMsg := k.KnowledgeDel(tt.args.answerId)
  176. if gotOk != tt.wantOk {
  177. t.Errorf("KnowledgeDel() gotOk = %v, want %v", gotOk, tt.wantOk)
  178. }
  179. if gotMsg != tt.wantMsg {
  180. t.Errorf("KnowledgeDel() gotMsg = %v, want %v", gotMsg, tt.wantMsg)
  181. }
  182. })
  183. }
  184. }
  185. func TestKnowledgeService_KnowledgeEdit(t *testing.T) {
  186. type args struct {
  187. param *knowledgeclient.KnowledgeEditReq
  188. segment string
  189. }
  190. tests := []struct {
  191. name string
  192. args args
  193. wantOk bool
  194. wantMsg string
  195. wantErr bool
  196. }{
  197. {
  198. name: "知识编辑",
  199. args: args{
  200. param: &knowledgeclient.KnowledgeEditReq{
  201. Question: "",
  202. Answer: "",
  203. AnswerId: 0,
  204. KnowledgeId: 0,
  205. EntId: 14929,
  206. EntUserId: 4315,
  207. AppId: "10000",
  208. },
  209. segment: "http://192.168.3.204:9070/api/segment",
  210. },
  211. },
  212. }
  213. for _, tt := range tests {
  214. t.Run(tt.name, func(t *testing.T) {
  215. k := &KnowledgeService{}
  216. gotOk, gotMsg, err := k.KnowledgeEdit(tt.args.param, tt.args.segment)
  217. if (err != nil) != tt.wantErr {
  218. t.Errorf("KnowledgeEdit() error = %v, wantErr %v", err, tt.wantErr)
  219. return
  220. }
  221. if gotOk != tt.wantOk {
  222. t.Errorf("KnowledgeEdit() gotOk = %v, want %v", gotOk, tt.wantOk)
  223. }
  224. if gotMsg != tt.wantMsg {
  225. t.Errorf("KnowledgeEdit() gotMsg = %v, want %v", gotMsg, tt.wantMsg)
  226. }
  227. })
  228. }
  229. }
  230. func TestKnowledgeService_KnowledgeInfo(t *testing.T) {
  231. type args struct {
  232. answerId int64
  233. }
  234. tests := []struct {
  235. name string
  236. args args
  237. wantData *knowledgeclient.KnowledgeEntity
  238. wantOk bool
  239. }{
  240. {
  241. name: "知识详情",
  242. args: args{
  243. answerId: 30191,
  244. },
  245. wantOk: true,
  246. },
  247. }
  248. for _, tt := range tests {
  249. t.Run(tt.name, func(t *testing.T) {
  250. k := &KnowledgeService{}
  251. gotData, gotOk := k.KnowledgeInfo(tt.args.answerId)
  252. if !reflect.DeepEqual(gotData, tt.wantData) {
  253. t.Errorf("KnowledgeInfo() gotData = %v, want %v", gotData, tt.wantData)
  254. }
  255. if gotOk != tt.wantOk {
  256. t.Errorf("KnowledgeInfo() gotOk = %v, want %v", gotOk, tt.wantOk)
  257. }
  258. })
  259. }
  260. }
  261. func TestKnowledgeService_KnowledgeList(t *testing.T) {
  262. type args struct {
  263. param *knowledgeclient.ListRequest
  264. }
  265. tests := []struct {
  266. name string
  267. args args
  268. want *knowledgeclient.ListData
  269. }{
  270. {
  271. name: "知识列表",
  272. args: args{
  273. param: &knowledgeclient.ListRequest{
  274. PageSize: 20,
  275. PageIndex: 1,
  276. EntId: 14929,
  277. },
  278. },
  279. },
  280. }
  281. for _, tt := range tests {
  282. t.Run(tt.name, func(t *testing.T) {
  283. k := &KnowledgeService{}
  284. if got := k.KnowledgeList(tt.args.param); !reflect.DeepEqual(got, tt.want) {
  285. t.Errorf("KnowledgeList() = %v, want %v", got, tt.want)
  286. }
  287. })
  288. }
  289. }
  290. func TestKnowledgeService_RecommendAnswer(t *testing.T) {
  291. type args struct {
  292. param *knowledgeclient.FindAnswerReq
  293. segment string
  294. }
  295. tests := []struct {
  296. name string
  297. args args
  298. want []*knowledgeclient.Question
  299. }{
  300. {
  301. name: "根据问题查询答案",
  302. args: args{
  303. param: &knowledgeclient.FindAnswerReq{
  304. Type: 1,
  305. Question: "任姣姣测试添加问题",
  306. RobotEntId: "14929",
  307. },
  308. segment: "http://192.168.3.204:9070/api/segment",
  309. },
  310. },
  311. {
  312. name: "根据问题查询答案",
  313. args: args{
  314. param: &knowledgeclient.FindAnswerReq{
  315. Type: 1,
  316. Question: "我的",
  317. RobotEntId: "14929",
  318. },
  319. segment: "http://192.168.3.204:9070/api/segment",
  320. },
  321. },
  322. }
  323. for _, tt := range tests {
  324. t.Run(tt.name, func(t *testing.T) {
  325. k := &KnowledgeService{}
  326. if got := k.RecommendAnswer(tt.args.param, tt.args.segment); !reflect.DeepEqual(got, tt.want) {
  327. t.Errorf("RecommendAnswer() = %v, want %v", got, tt.want)
  328. }
  329. })
  330. }
  331. }