nlp_wordsegment_ft.cc 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4. #include "gtest/gtest.h"
  5. #include "../utils.h"
  6. #include "alibabacloud/core/AlibabaCloud.h"
  7. #include "alibabacloud/core/CommonClient.h"
  8. #include "alibabacloud/core/HttpRequest.h"
  9. using namespace std;
  10. using namespace AlibabaCloud;
  11. namespace {
  12. TEST(nlp, wordsegment) {
  13. utUtils utils;
  14. string key = utils.get_env("ENV_AccessKeyId");
  15. string secret = utils.get_env("ENV_AccessKeySecret");
  16. AlibabaCloud::InitializeSdk();
  17. ClientConfiguration configuration("cn-shanghai");
  18. CommonClient client(key, secret, configuration);
  19. // create request and assign parameters
  20. CommonRequest request(CommonRequest::RoaPattern);
  21. request.setScheme("http");
  22. request.setDomain("nlp.cn-shanghai.aliyuncs.com");
  23. request.setResourcePath("/nlp/api/wordsegment/general");
  24. request.setHttpMethod(HttpRequest::Post);
  25. const char * data = "{\"lang\":\"ZH\",\"text\":\"Iphone is a good choice 专用数据线\"}";
  26. request.setContent(data, strlen(data));
  27. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  28. request.setVersion("2018-04-08");
  29. auto outcome = client.commonResponse(request);
  30. EXPECT_TRUE(outcome.error().errorCode().empty());
  31. const std::string expected = "{\"data\":[{\"id\":0,\"word\":\"Iphone\"},{\"id\":1,\"word\":\" \"},{\"id\":2,\"word\":\"is\"},{\"id\":3,\"word\":\" \"},{\"id\":4,\"word\":\"a\"},{\"id\":5,\"word\":\" \"},{\"id\":6,\"word\":\"good\"},{\"id\":7,\"word\":\" \"},{\"id\":8,\"word\":\"choice\"},{\"id\":9,\"word\":\" \"},{\"id\":10,\"word\":\"专用\"},{\"id\":11,\"word\":\"数据线\"}]}";
  32. EXPECT_TRUE(outcome.result().payload() == expected);
  33. AlibabaCloud::ShutdownSdk();
  34. }
  35. TEST(nlp, wordsegment_error) {
  36. utUtils utils;
  37. string key = utils.get_env("ENV_AccessKeyId");
  38. string secret = utils.get_env("ENV_AccessKeySecret");
  39. AlibabaCloud::InitializeSdk();
  40. ClientConfiguration configuration("cn-shanghai");
  41. CommonClient client(key, secret, configuration);
  42. // create request and assign parameters
  43. CommonRequest request(CommonRequest::RoaPattern);
  44. request.setScheme("http");
  45. request.setDomain("nlp.cn-shanghai.aliyuncs.com");
  46. request.setResourcePath("/nlp/api/wordsegment/general");
  47. request.setHttpMethod(HttpRequest::Post);
  48. const char * data = "invlaid text";
  49. request.setContent(data, strlen(data));
  50. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  51. request.setVersion("2018-04-08");
  52. auto outcome = client.commonResponse(request);
  53. const string error = "{\"errorCode\":10007,\"errorMsg\":\"body json format invalid\"}";
  54. EXPECT_TRUE(outcome.error().detail() == error);
  55. AlibabaCloud::ShutdownSdk();
  56. }
  57. TEST(nlp, wordsegmentClientTimeout) {
  58. utUtils utils;
  59. string key = utils.get_env("ENV_AccessKeyId");
  60. string secret = utils.get_env("ENV_AccessKeySecret");
  61. AlibabaCloud::InitializeSdk();
  62. ClientConfiguration configuration("cn-shanghai");
  63. configuration.setConnectTimeout(1);
  64. configuration.setReadTimeout(123);
  65. CommonClient client(key, secret, configuration);
  66. // create request and assign parameters
  67. CommonRequest request(CommonRequest::RoaPattern);
  68. request.setScheme("http");
  69. request.setDomain("nlp.cn-shanghai.aliyuncs.com");
  70. request.setResourcePath("/nlp/api/wordsegment/general");
  71. request.setHttpMethod(HttpRequest::Post);
  72. const char * data = "{\"lang\":\"ZH\",\"text\":\"Iphone is a good choice 专用数据线\"}";
  73. request.setContent(data, strlen(data));
  74. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  75. request.setVersion("2018-04-08");
  76. auto outcome = client.commonResponse(request);
  77. EXPECT_TRUE(outcome.error().errorCode() == "OperationTimeoutError");
  78. EXPECT_TRUE(outcome.error().errorMessage().find("Timeout (connectTimeout: 1ms, readTimeout: 123ms) when connect or read") == 0);
  79. AlibabaCloud::ShutdownSdk();
  80. }
  81. TEST(nlp, wordsegmentRequestTimeout) {
  82. utUtils utils;
  83. string key = utils.get_env("ENV_AccessKeyId");
  84. string secret = utils.get_env("ENV_AccessKeySecret");
  85. AlibabaCloud::InitializeSdk();
  86. ClientConfiguration configuration("cn-shanghai");
  87. CommonClient client(key, secret, configuration);
  88. // create request and assign parameters
  89. CommonRequest request(CommonRequest::RoaPattern);
  90. request.setScheme("http");
  91. request.setDomain("nlp.cn-shanghai.aliyuncs.com");
  92. request.setConnectTimeout(11);
  93. request.setReadTimeout(213);
  94. request.setResourcePath("/nlp/api/wordsegment/general");
  95. request.setHttpMethod(HttpRequest::Post);
  96. const char * data = "{\"lang\":\"ZH\",\"text\":\"Iphone is a good choice 专用数据线\"}";
  97. request.setContent(data, strlen(data));
  98. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  99. request.setVersion("2018-04-08");
  100. auto outcome = client.commonResponse(request);
  101. EXPECT_TRUE(outcome.error().errorCode() == "OperationTimeoutError");
  102. EXPECT_TRUE(outcome.error().errorMessage().find("Timeout (connectTimeout: 11ms, readTimeout: 213ms) when connect or read") == 0);
  103. AlibabaCloud::ShutdownSdk();
  104. }
  105. TEST(nlp, wordsegmentClientRequestTimeout) {
  106. utUtils utils;
  107. string key = utils.get_env("ENV_AccessKeyId");
  108. string secret = utils.get_env("ENV_AccessKeySecret");
  109. AlibabaCloud::InitializeSdk();
  110. ClientConfiguration configuration("cn-shanghai");
  111. configuration.setConnectTimeout(1);
  112. configuration.setReadTimeout(123);
  113. CommonClient client(key, secret, configuration);
  114. // create request and assign parameters
  115. CommonRequest request(CommonRequest::RoaPattern);
  116. request.setScheme("http");
  117. request.setDomain("nlp.cn-shanghai.aliyuncs.com");
  118. request.setConnectTimeout(11);
  119. request.setReadTimeout(213);
  120. request.setResourcePath("/nlp/api/wordsegment/general");
  121. request.setHttpMethod(HttpRequest::Post);
  122. const char * data = "{\"lang\":\"ZH\",\"text\":\"Iphone is a good choice 专用数据线\"}";
  123. request.setContent(data, strlen(data));
  124. request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
  125. request.setVersion("2018-04-08");
  126. auto outcome = client.commonResponse(request);
  127. EXPECT_TRUE(outcome.error().errorCode() == "OperationTimeoutError");
  128. EXPECT_TRUE(outcome.error().errorMessage().find("Timeout (connectTimeout: 11ms, readTimeout: 213ms) when connect or read") == 0);
  129. AlibabaCloud::ShutdownSdk();
  130. }
  131. }