servicerequest_ut.cc 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include "gtest/gtest.h"
  5. #include "alibabacloud/core/ServiceRequest.h"
  6. using namespace std;
  7. using namespace AlibabaCloud;
  8. namespace AlibabaCloud{
  9. class TestServiceRequest: public ServiceRequest {
  10. public:
  11. explicit TestServiceRequest(const std::string &product, const std::string &version):
  12. ServiceRequest(product, version)
  13. {}
  14. explicit TestServiceRequest(const ServiceRequest &other):
  15. ServiceRequest(other)
  16. {}
  17. explicit TestServiceRequest(ServiceRequest &&other):
  18. ServiceRequest(other)
  19. {}
  20. void addParameter(const ParameterNameType &k, const ParameterValueType &v) {
  21. ServiceRequest::addParameter(k, v);
  22. }
  23. void removeParameter(const ParameterNameType &k) {
  24. ServiceRequest::removeParameter(k);
  25. }
  26. ServiceRequest::ParameterValueType parameter (const ParameterNameType &name) {
  27. return ServiceRequest::parameter(name);
  28. }
  29. void setContent(const char* data, size_t size) {
  30. ServiceRequest::setContent(data, size);
  31. }
  32. void setParameter(const ParameterNameType &k, const ParameterValueType &v) {
  33. ServiceRequest::setParameter(k, v);
  34. }
  35. void setParameters(const ParameterCollection &params) {
  36. ServiceRequest::setParameters(params);
  37. }
  38. void setResourcePath (const std::string &p) {
  39. ServiceRequest::setResourcePath(p);
  40. }
  41. void setProduct (const std::string &product) {
  42. ServiceRequest::setProduct(product);
  43. }
  44. void setVersion(const std::string &version) {
  45. ServiceRequest::setVersion(version);
  46. }
  47. };
  48. }
  49. TEST(ServiceRequestTest, basic) {
  50. TestServiceRequest sr1("ECS", "1.0");
  51. TestServiceRequest sr2(sr1);
  52. sr1.addParameter("k1", "v1");
  53. sr2.addParameter("k2", "v2");
  54. ServiceRequest::ParameterCollection p1 = sr1.parameters();
  55. ServiceRequest::ParameterCollection p2 = sr2.parameters();
  56. EXPECT_TRUE(sr1.parameter("k1") == "v1");
  57. sr1.addParameter("kx", "vx");
  58. EXPECT_TRUE(sr1.parameter("kx") == "vx");
  59. EXPECT_TRUE(sr1.parameters().size() == 2);
  60. sr1.removeParameter("k1");
  61. EXPECT_TRUE(sr1.parameters().size() == 1);
  62. sr1.setParameter("ka", "va");
  63. EXPECT_TRUE(sr1.parameter("ka") == "va");
  64. sr1.setContent("123456", 6);
  65. EXPECT_TRUE(sr1.contentSize() == 6);
  66. EXPECT_TRUE(sr1.hasContent() == true);
  67. EXPECT_TRUE(strncmp(sr1.content(), "123456", 6) == 0);
  68. sr1.setContent("aliyunsdk", 9);
  69. EXPECT_TRUE(sr1.contentSize() == 9);
  70. EXPECT_TRUE(sr1.hasContent() == true);
  71. EXPECT_TRUE(strncmp(sr1.content(), "aliyunsdk", 9) == 0);
  72. sr1.setProduct("OSS");
  73. EXPECT_TRUE(sr1.product() == "OSS");
  74. sr1.setVersion("3.0");
  75. EXPECT_TRUE(sr1.version() == "3.0");
  76. sr1.setResourcePath("http://abc.com/a/b/c");
  77. EXPECT_TRUE(sr1.resourcePath() == "http://abc.com/a/b/c");
  78. ServiceRequest::ParameterCollection ps;
  79. ps["km"] = "vm";
  80. ps["kn"] = "vn";
  81. sr1.setParameters(ps);
  82. ServiceRequest::ParameterCollection pc = sr1.parameters();
  83. EXPECT_TRUE(pc.at("km") == "vm");
  84. EXPECT_TRUE(pc.at("kn") == "vn");
  85. }