/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #include #include #include using namespace AWSCoreTestingUtils; using OBJECT_TYPE = TestObject; using ARRAY_TYPE = AZStd::vector; using JsonWriterTest = AWSCoreFixture; template void TestJsonWriterSuccess(const ValueType& actualValue, const char* valueString) { Aws::StringStream stringStream{}; AWSCore::JsonOutputStream jsonStream{stringStream}; TestObject object; object.value = actualValue; AWSCore::JsonWriter writer{jsonStream}; bool ok = writer.Write(object); Aws::String actualJson = stringStream.str(); ASSERT_TRUE(ok); AZStd::string expectedJson = TestObjectJson(valueString); puts(actualJson.c_str()); puts(expectedJson.c_str()); ASSERT_EQ(actualJson, expectedJson.c_str()); } TEST_F(JsonWriterTest, Write_WriteAsDifferentTypes_GetExpectedResult) { TestJsonWriterSuccess(STRING_VALUE, STRING_VALUE_JSON); TestJsonWriterSuccess(BOOL_VALUE, BOOL_VALUE_STRING); TestJsonWriterSuccess(INT_VALUE, INT_VALUE_STRING); TestJsonWriterSuccess(UINT_VALUE, UINT_VALUE_STRING); TestJsonWriterSuccess(INT64_VALUE, INT64_VALUE_STRING); TestJsonWriterSuccess(UINT64_VALUE, UINT64_VALUE_STRING); const OBJECT_TYPE OBJECT_VALUE{"s"}; TestJsonWriterSuccess(OBJECT_VALUE, OBJECT_VALUE_JSON); const ARRAY_TYPE ARRAY_VALUE{"a", "b", "c"}; TestJsonWriterSuccess(ARRAY_VALUE, ARRAY_VALUE_JSON); }