You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

519 lines
14 KiB

  1. // Copyright 2019 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // https://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by gapic-generator. DO NOT EDIT.
  15. package language
  16. import (
  17. languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
  18. )
  19. import (
  20. "context"
  21. "flag"
  22. "fmt"
  23. "io"
  24. "log"
  25. "net"
  26. "os"
  27. "strings"
  28. "testing"
  29. "github.com/golang/protobuf/proto"
  30. "github.com/golang/protobuf/ptypes"
  31. "google.golang.org/api/option"
  32. status "google.golang.org/genproto/googleapis/rpc/status"
  33. "google.golang.org/grpc"
  34. "google.golang.org/grpc/codes"
  35. "google.golang.org/grpc/metadata"
  36. gstatus "google.golang.org/grpc/status"
  37. )
  38. var _ = io.EOF
  39. var _ = ptypes.MarshalAny
  40. var _ status.Status
  41. type mockLanguageServer struct {
  42. // Embed for forward compatibility.
  43. // Tests will keep working if more methods are added
  44. // in the future.
  45. languagepb.LanguageServiceServer
  46. reqs []proto.Message
  47. // If set, all calls return this error.
  48. err error
  49. // responses to return if err == nil
  50. resps []proto.Message
  51. }
  52. func (s *mockLanguageServer) AnalyzeSentiment(ctx context.Context, req *languagepb.AnalyzeSentimentRequest) (*languagepb.AnalyzeSentimentResponse, error) {
  53. md, _ := metadata.FromIncomingContext(ctx)
  54. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  55. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  56. }
  57. s.reqs = append(s.reqs, req)
  58. if s.err != nil {
  59. return nil, s.err
  60. }
  61. return s.resps[0].(*languagepb.AnalyzeSentimentResponse), nil
  62. }
  63. func (s *mockLanguageServer) AnalyzeEntities(ctx context.Context, req *languagepb.AnalyzeEntitiesRequest) (*languagepb.AnalyzeEntitiesResponse, error) {
  64. md, _ := metadata.FromIncomingContext(ctx)
  65. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  66. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  67. }
  68. s.reqs = append(s.reqs, req)
  69. if s.err != nil {
  70. return nil, s.err
  71. }
  72. return s.resps[0].(*languagepb.AnalyzeEntitiesResponse), nil
  73. }
  74. func (s *mockLanguageServer) AnalyzeEntitySentiment(ctx context.Context, req *languagepb.AnalyzeEntitySentimentRequest) (*languagepb.AnalyzeEntitySentimentResponse, error) {
  75. md, _ := metadata.FromIncomingContext(ctx)
  76. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  77. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  78. }
  79. s.reqs = append(s.reqs, req)
  80. if s.err != nil {
  81. return nil, s.err
  82. }
  83. return s.resps[0].(*languagepb.AnalyzeEntitySentimentResponse), nil
  84. }
  85. func (s *mockLanguageServer) AnalyzeSyntax(ctx context.Context, req *languagepb.AnalyzeSyntaxRequest) (*languagepb.AnalyzeSyntaxResponse, error) {
  86. md, _ := metadata.FromIncomingContext(ctx)
  87. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  88. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  89. }
  90. s.reqs = append(s.reqs, req)
  91. if s.err != nil {
  92. return nil, s.err
  93. }
  94. return s.resps[0].(*languagepb.AnalyzeSyntaxResponse), nil
  95. }
  96. func (s *mockLanguageServer) ClassifyText(ctx context.Context, req *languagepb.ClassifyTextRequest) (*languagepb.ClassifyTextResponse, error) {
  97. md, _ := metadata.FromIncomingContext(ctx)
  98. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  99. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  100. }
  101. s.reqs = append(s.reqs, req)
  102. if s.err != nil {
  103. return nil, s.err
  104. }
  105. return s.resps[0].(*languagepb.ClassifyTextResponse), nil
  106. }
  107. func (s *mockLanguageServer) AnnotateText(ctx context.Context, req *languagepb.AnnotateTextRequest) (*languagepb.AnnotateTextResponse, error) {
  108. md, _ := metadata.FromIncomingContext(ctx)
  109. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  110. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  111. }
  112. s.reqs = append(s.reqs, req)
  113. if s.err != nil {
  114. return nil, s.err
  115. }
  116. return s.resps[0].(*languagepb.AnnotateTextResponse), nil
  117. }
  118. // clientOpt is the option tests should use to connect to the test server.
  119. // It is initialized by TestMain.
  120. var clientOpt option.ClientOption
  121. var (
  122. mockLanguage mockLanguageServer
  123. )
  124. func TestMain(m *testing.M) {
  125. flag.Parse()
  126. serv := grpc.NewServer()
  127. languagepb.RegisterLanguageServiceServer(serv, &mockLanguage)
  128. lis, err := net.Listen("tcp", "localhost:0")
  129. if err != nil {
  130. log.Fatal(err)
  131. }
  132. go serv.Serve(lis)
  133. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  134. if err != nil {
  135. log.Fatal(err)
  136. }
  137. clientOpt = option.WithGRPCConn(conn)
  138. os.Exit(m.Run())
  139. }
  140. func TestLanguageServiceAnalyzeSentiment(t *testing.T) {
  141. var language string = "language-1613589672"
  142. var expectedResponse = &languagepb.AnalyzeSentimentResponse{
  143. Language: language,
  144. }
  145. mockLanguage.err = nil
  146. mockLanguage.reqs = nil
  147. mockLanguage.resps = append(mockLanguage.resps[:0], expectedResponse)
  148. var document *languagepb.Document = &languagepb.Document{}
  149. var request = &languagepb.AnalyzeSentimentRequest{
  150. Document: document,
  151. }
  152. c, err := NewClient(context.Background(), clientOpt)
  153. if err != nil {
  154. t.Fatal(err)
  155. }
  156. resp, err := c.AnalyzeSentiment(context.Background(), request)
  157. if err != nil {
  158. t.Fatal(err)
  159. }
  160. if want, got := request, mockLanguage.reqs[0]; !proto.Equal(want, got) {
  161. t.Errorf("wrong request %q, want %q", got, want)
  162. }
  163. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  164. t.Errorf("wrong response %q, want %q)", got, want)
  165. }
  166. }
  167. func TestLanguageServiceAnalyzeSentimentError(t *testing.T) {
  168. errCode := codes.PermissionDenied
  169. mockLanguage.err = gstatus.Error(errCode, "test error")
  170. var document *languagepb.Document = &languagepb.Document{}
  171. var request = &languagepb.AnalyzeSentimentRequest{
  172. Document: document,
  173. }
  174. c, err := NewClient(context.Background(), clientOpt)
  175. if err != nil {
  176. t.Fatal(err)
  177. }
  178. resp, err := c.AnalyzeSentiment(context.Background(), request)
  179. if st, ok := gstatus.FromError(err); !ok {
  180. t.Errorf("got error %v, expected grpc error", err)
  181. } else if c := st.Code(); c != errCode {
  182. t.Errorf("got error code %q, want %q", c, errCode)
  183. }
  184. _ = resp
  185. }
  186. func TestLanguageServiceAnalyzeEntities(t *testing.T) {
  187. var language string = "language-1613589672"
  188. var expectedResponse = &languagepb.AnalyzeEntitiesResponse{
  189. Language: language,
  190. }
  191. mockLanguage.err = nil
  192. mockLanguage.reqs = nil
  193. mockLanguage.resps = append(mockLanguage.resps[:0], expectedResponse)
  194. var document *languagepb.Document = &languagepb.Document{}
  195. var request = &languagepb.AnalyzeEntitiesRequest{
  196. Document: document,
  197. }
  198. c, err := NewClient(context.Background(), clientOpt)
  199. if err != nil {
  200. t.Fatal(err)
  201. }
  202. resp, err := c.AnalyzeEntities(context.Background(), request)
  203. if err != nil {
  204. t.Fatal(err)
  205. }
  206. if want, got := request, mockLanguage.reqs[0]; !proto.Equal(want, got) {
  207. t.Errorf("wrong request %q, want %q", got, want)
  208. }
  209. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  210. t.Errorf("wrong response %q, want %q)", got, want)
  211. }
  212. }
  213. func TestLanguageServiceAnalyzeEntitiesError(t *testing.T) {
  214. errCode := codes.PermissionDenied
  215. mockLanguage.err = gstatus.Error(errCode, "test error")
  216. var document *languagepb.Document = &languagepb.Document{}
  217. var request = &languagepb.AnalyzeEntitiesRequest{
  218. Document: document,
  219. }
  220. c, err := NewClient(context.Background(), clientOpt)
  221. if err != nil {
  222. t.Fatal(err)
  223. }
  224. resp, err := c.AnalyzeEntities(context.Background(), request)
  225. if st, ok := gstatus.FromError(err); !ok {
  226. t.Errorf("got error %v, expected grpc error", err)
  227. } else if c := st.Code(); c != errCode {
  228. t.Errorf("got error code %q, want %q", c, errCode)
  229. }
  230. _ = resp
  231. }
  232. func TestLanguageServiceAnalyzeEntitySentiment(t *testing.T) {
  233. var language string = "language-1613589672"
  234. var expectedResponse = &languagepb.AnalyzeEntitySentimentResponse{
  235. Language: language,
  236. }
  237. mockLanguage.err = nil
  238. mockLanguage.reqs = nil
  239. mockLanguage.resps = append(mockLanguage.resps[:0], expectedResponse)
  240. var document *languagepb.Document = &languagepb.Document{}
  241. var request = &languagepb.AnalyzeEntitySentimentRequest{
  242. Document: document,
  243. }
  244. c, err := NewClient(context.Background(), clientOpt)
  245. if err != nil {
  246. t.Fatal(err)
  247. }
  248. resp, err := c.AnalyzeEntitySentiment(context.Background(), request)
  249. if err != nil {
  250. t.Fatal(err)
  251. }
  252. if want, got := request, mockLanguage.reqs[0]; !proto.Equal(want, got) {
  253. t.Errorf("wrong request %q, want %q", got, want)
  254. }
  255. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  256. t.Errorf("wrong response %q, want %q)", got, want)
  257. }
  258. }
  259. func TestLanguageServiceAnalyzeEntitySentimentError(t *testing.T) {
  260. errCode := codes.PermissionDenied
  261. mockLanguage.err = gstatus.Error(errCode, "test error")
  262. var document *languagepb.Document = &languagepb.Document{}
  263. var request = &languagepb.AnalyzeEntitySentimentRequest{
  264. Document: document,
  265. }
  266. c, err := NewClient(context.Background(), clientOpt)
  267. if err != nil {
  268. t.Fatal(err)
  269. }
  270. resp, err := c.AnalyzeEntitySentiment(context.Background(), request)
  271. if st, ok := gstatus.FromError(err); !ok {
  272. t.Errorf("got error %v, expected grpc error", err)
  273. } else if c := st.Code(); c != errCode {
  274. t.Errorf("got error code %q, want %q", c, errCode)
  275. }
  276. _ = resp
  277. }
  278. func TestLanguageServiceAnalyzeSyntax(t *testing.T) {
  279. var language string = "language-1613589672"
  280. var expectedResponse = &languagepb.AnalyzeSyntaxResponse{
  281. Language: language,
  282. }
  283. mockLanguage.err = nil
  284. mockLanguage.reqs = nil
  285. mockLanguage.resps = append(mockLanguage.resps[:0], expectedResponse)
  286. var document *languagepb.Document = &languagepb.Document{}
  287. var request = &languagepb.AnalyzeSyntaxRequest{
  288. Document: document,
  289. }
  290. c, err := NewClient(context.Background(), clientOpt)
  291. if err != nil {
  292. t.Fatal(err)
  293. }
  294. resp, err := c.AnalyzeSyntax(context.Background(), request)
  295. if err != nil {
  296. t.Fatal(err)
  297. }
  298. if want, got := request, mockLanguage.reqs[0]; !proto.Equal(want, got) {
  299. t.Errorf("wrong request %q, want %q", got, want)
  300. }
  301. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  302. t.Errorf("wrong response %q, want %q)", got, want)
  303. }
  304. }
  305. func TestLanguageServiceAnalyzeSyntaxError(t *testing.T) {
  306. errCode := codes.PermissionDenied
  307. mockLanguage.err = gstatus.Error(errCode, "test error")
  308. var document *languagepb.Document = &languagepb.Document{}
  309. var request = &languagepb.AnalyzeSyntaxRequest{
  310. Document: document,
  311. }
  312. c, err := NewClient(context.Background(), clientOpt)
  313. if err != nil {
  314. t.Fatal(err)
  315. }
  316. resp, err := c.AnalyzeSyntax(context.Background(), request)
  317. if st, ok := gstatus.FromError(err); !ok {
  318. t.Errorf("got error %v, expected grpc error", err)
  319. } else if c := st.Code(); c != errCode {
  320. t.Errorf("got error code %q, want %q", c, errCode)
  321. }
  322. _ = resp
  323. }
  324. func TestLanguageServiceClassifyText(t *testing.T) {
  325. var expectedResponse *languagepb.ClassifyTextResponse = &languagepb.ClassifyTextResponse{}
  326. mockLanguage.err = nil
  327. mockLanguage.reqs = nil
  328. mockLanguage.resps = append(mockLanguage.resps[:0], expectedResponse)
  329. var document *languagepb.Document = &languagepb.Document{}
  330. var request = &languagepb.ClassifyTextRequest{
  331. Document: document,
  332. }
  333. c, err := NewClient(context.Background(), clientOpt)
  334. if err != nil {
  335. t.Fatal(err)
  336. }
  337. resp, err := c.ClassifyText(context.Background(), request)
  338. if err != nil {
  339. t.Fatal(err)
  340. }
  341. if want, got := request, mockLanguage.reqs[0]; !proto.Equal(want, got) {
  342. t.Errorf("wrong request %q, want %q", got, want)
  343. }
  344. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  345. t.Errorf("wrong response %q, want %q)", got, want)
  346. }
  347. }
  348. func TestLanguageServiceClassifyTextError(t *testing.T) {
  349. errCode := codes.PermissionDenied
  350. mockLanguage.err = gstatus.Error(errCode, "test error")
  351. var document *languagepb.Document = &languagepb.Document{}
  352. var request = &languagepb.ClassifyTextRequest{
  353. Document: document,
  354. }
  355. c, err := NewClient(context.Background(), clientOpt)
  356. if err != nil {
  357. t.Fatal(err)
  358. }
  359. resp, err := c.ClassifyText(context.Background(), request)
  360. if st, ok := gstatus.FromError(err); !ok {
  361. t.Errorf("got error %v, expected grpc error", err)
  362. } else if c := st.Code(); c != errCode {
  363. t.Errorf("got error code %q, want %q", c, errCode)
  364. }
  365. _ = resp
  366. }
  367. func TestLanguageServiceAnnotateText(t *testing.T) {
  368. var language string = "language-1613589672"
  369. var expectedResponse = &languagepb.AnnotateTextResponse{
  370. Language: language,
  371. }
  372. mockLanguage.err = nil
  373. mockLanguage.reqs = nil
  374. mockLanguage.resps = append(mockLanguage.resps[:0], expectedResponse)
  375. var document *languagepb.Document = &languagepb.Document{}
  376. var features *languagepb.AnnotateTextRequest_Features = &languagepb.AnnotateTextRequest_Features{}
  377. var request = &languagepb.AnnotateTextRequest{
  378. Document: document,
  379. Features: features,
  380. }
  381. c, err := NewClient(context.Background(), clientOpt)
  382. if err != nil {
  383. t.Fatal(err)
  384. }
  385. resp, err := c.AnnotateText(context.Background(), request)
  386. if err != nil {
  387. t.Fatal(err)
  388. }
  389. if want, got := request, mockLanguage.reqs[0]; !proto.Equal(want, got) {
  390. t.Errorf("wrong request %q, want %q", got, want)
  391. }
  392. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  393. t.Errorf("wrong response %q, want %q)", got, want)
  394. }
  395. }
  396. func TestLanguageServiceAnnotateTextError(t *testing.T) {
  397. errCode := codes.PermissionDenied
  398. mockLanguage.err = gstatus.Error(errCode, "test error")
  399. var document *languagepb.Document = &languagepb.Document{}
  400. var features *languagepb.AnnotateTextRequest_Features = &languagepb.AnnotateTextRequest_Features{}
  401. var request = &languagepb.AnnotateTextRequest{
  402. Document: document,
  403. Features: features,
  404. }
  405. c, err := NewClient(context.Background(), clientOpt)
  406. if err != nil {
  407. t.Fatal(err)
  408. }
  409. resp, err := c.AnnotateText(context.Background(), request)
  410. if st, ok := gstatus.FromError(err); !ok {
  411. t.Errorf("got error %v, expected grpc error", err)
  412. } else if c := st.Code(); c != errCode {
  413. t.Errorf("got error code %q, want %q", c, errCode)
  414. }
  415. _ = resp
  416. }