RequestBuilderTest.cpp 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Framework/RequestBuilder.h>
  9. #include <TestFramework/AWSCoreFixture.h>
  10. using namespace AWSCore;
  11. using namespace AWSCoreTestingUtils;
  12. using RequestBuilderTest = AWSCoreFixture;
  13. TEST_F(RequestBuilderTest, WriteJsonBodyParameter_UseTestJsonBody_GetExpectedValue)
  14. {
  15. TestObject<AZStd::string> object;
  16. object.value = STRING_VALUE;
  17. RequestBuilder testRequestBuilder;
  18. testRequestBuilder.WriteJsonBodyParameter(object);
  19. auto stream = testRequestBuilder.GetBodyContent();
  20. ASSERT_EQ(stream->str(), TestObjectJson(STRING_VALUE_JSON).c_str());
  21. }
  22. TEST_F(RequestBuilderTest, SetHttpMethod_UsePatchMethod_GetExpectedValue)
  23. {
  24. RequestBuilder testRequestBuilder;
  25. testRequestBuilder.SetHttpMethod(Aws::Http::HttpMethod::HTTP_PATCH);
  26. ASSERT_EQ(testRequestBuilder.GetHttpMethod(), Aws::Http::HttpMethod::HTTP_PATCH);
  27. }
  28. TEST_F(RequestBuilderTest, SetErrorMessage_UseTestMessage_GetExpectedValue)
  29. {
  30. RequestBuilder testRequestBuilder;
  31. testRequestBuilder.SetErrorMessage("test");
  32. ASSERT_EQ(testRequestBuilder.GetErrorMessage(), "test");
  33. }
  34. template<class ValueType>
  35. void TestRequestBuilderSetPathParameter(const ValueType& expectedValue, const char* valueString)
  36. {
  37. RequestBuilder testRequestBuilder;
  38. testRequestBuilder.SetRequestUrl("http://test/{param}/test");
  39. testRequestBuilder.SetPathParameter("{param}", expectedValue);
  40. ASSERT_EQ(testRequestBuilder.GetRequestUrl(), AZStd::string::format("http://test/%s/test", valueString).c_str());
  41. }
  42. TEST_F(RequestBuilderTest, SetPathParameter_HaveDifferentTypeParameters_GetExpectedUrl)
  43. {
  44. TestRequestBuilderSetPathParameter(STRING_VALUE, STRING_VALUE_STRING);
  45. TestRequestBuilderSetPathParameter(BOOL_VALUE, BOOL_VALUE_STRING);
  46. TestRequestBuilderSetPathParameter(CHARPTR_VALUE, CHARPTR_VALUE_STRING);
  47. TestRequestBuilderSetPathParameter(INT_VALUE, INT_VALUE_STRING);
  48. TestRequestBuilderSetPathParameter(UINT_VALUE, UINT_VALUE_STRING);
  49. TestRequestBuilderSetPathParameter(INT64_VALUE, INT64_VALUE_STRING);
  50. TestRequestBuilderSetPathParameter(UINT64_VALUE, UINT64_VALUE_STRING);
  51. TestRequestBuilderSetPathParameter(UNESCAPED, ESCAPED);
  52. }
  53. template<class ValueType>
  54. void TestRequestBuilderAddQueryParameter(const ValueType& expectedValue, const char* valueString)
  55. {
  56. RequestBuilder testRequestBuilder;
  57. testRequestBuilder.SetRequestUrl("http://test");
  58. testRequestBuilder.AddQueryParameter("param", expectedValue);
  59. ASSERT_EQ(testRequestBuilder.GetRequestUrl(), AZStd::string::format("http://test?param=%s", valueString).c_str());
  60. }
  61. TEST_F(RequestBuilderTest, AddQueryParameter_HaveDifferentTypeParameters_GetExpectedUrl)
  62. {
  63. TestRequestBuilderAddQueryParameter(STRING_VALUE, STRING_VALUE_STRING);
  64. TestRequestBuilderAddQueryParameter(BOOL_VALUE, BOOL_VALUE_STRING);
  65. TestRequestBuilderAddQueryParameter(CHARPTR_VALUE, CHARPTR_VALUE_STRING);
  66. TestRequestBuilderAddQueryParameter(INT_VALUE, INT_VALUE_STRING);
  67. TestRequestBuilderAddQueryParameter(UINT_VALUE, UINT_VALUE_STRING);
  68. TestRequestBuilderAddQueryParameter(INT64_VALUE, INT64_VALUE_STRING);
  69. TestRequestBuilderAddQueryParameter(UINT64_VALUE, UINT64_VALUE_STRING);
  70. TestRequestBuilderAddQueryParameter(UNESCAPED, ESCAPED);
  71. }
  72. TEST_F(RequestBuilderTest, AddQueryParameter_HaveMultipeQueryParameters_GetExpectedUrl)
  73. {
  74. RequestBuilder testRequestBuilder;
  75. Aws::String expectedUrl = testRequestBuilder.GetRequestUrl();
  76. expectedUrl.append("?p1=s1&p2=s2");
  77. testRequestBuilder.AddQueryParameter("p1", "s1");
  78. testRequestBuilder.AddQueryParameter("p2", "s2");
  79. ASSERT_EQ(testRequestBuilder.GetRequestUrl(), expectedUrl);
  80. }