3
0

JsonWriterTest.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 <aws/core/utils/memory/stl/AWSString.h>
  9. #include <aws/core/utils/memory/stl/AWSStringStream.h>
  10. #include <TestFramework/AWSCoreFixture.h>
  11. using namespace AWSCoreTestingUtils;
  12. using OBJECT_TYPE = TestObject<AZStd::string>;
  13. using ARRAY_TYPE = AZStd::vector<AZStd::string>;
  14. using JsonWriterTest = AWSCoreFixture;
  15. template<class ValueType>
  16. void TestJsonWriterSuccess(const ValueType& actualValue, const char* valueString)
  17. {
  18. Aws::StringStream stringStream{};
  19. AWSCore::JsonOutputStream jsonStream{stringStream};
  20. TestObject<ValueType> object;
  21. object.value = actualValue;
  22. AWSCore::JsonWriter writer{jsonStream};
  23. bool ok = writer.Write(object);
  24. Aws::String actualJson = stringStream.str();
  25. ASSERT_TRUE(ok);
  26. AZStd::string expectedJson = TestObjectJson(valueString);
  27. puts(actualJson.c_str());
  28. puts(expectedJson.c_str());
  29. ASSERT_EQ(actualJson, expectedJson.c_str());
  30. }
  31. TEST_F(JsonWriterTest, Write_WriteAsDifferentTypes_GetExpectedResult)
  32. {
  33. TestJsonWriterSuccess<AZStd::string>(STRING_VALUE, STRING_VALUE_JSON);
  34. TestJsonWriterSuccess<bool>(BOOL_VALUE, BOOL_VALUE_STRING);
  35. TestJsonWriterSuccess<int>(INT_VALUE, INT_VALUE_STRING);
  36. TestJsonWriterSuccess<unsigned>(UINT_VALUE, UINT_VALUE_STRING);
  37. TestJsonWriterSuccess<int64_t>(INT64_VALUE, INT64_VALUE_STRING);
  38. TestJsonWriterSuccess<uint64_t>(UINT64_VALUE, UINT64_VALUE_STRING);
  39. const OBJECT_TYPE OBJECT_VALUE{"s"};
  40. TestJsonWriterSuccess<OBJECT_TYPE>(OBJECT_VALUE, OBJECT_VALUE_JSON);
  41. const ARRAY_TYPE ARRAY_VALUE{"a", "b", "c"};
  42. TestJsonWriterSuccess<ARRAY_TYPE>(ARRAY_VALUE, ARRAY_VALUE_JSON);
  43. }