From a537e99c8a90ddaff03ddce68cd20b11ca566421 Mon Sep 17 00:00:00 2001 From: prakanth <50439067+prakanth97@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:00:30 +0530 Subject: [PATCH 1/2] Add tests with anydata array as expected type --- ballerina/tests/from_json_string_test.bal | 38 +++++++++++++++++++++++ ballerina/tests/from_json_test.bal | 38 +++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/ballerina/tests/from_json_string_test.bal b/ballerina/tests/from_json_string_test.bal index b0d5eae..0106b6d 100644 --- a/ballerina/tests/from_json_string_test.bal +++ b/ballerina/tests/from_json_string_test.bal @@ -704,6 +704,44 @@ isolated function testAnydataAsExpTypeForParseString() returns Error? { test:assertEquals(val5, [[1], 2]); } +@test:Config +isolated function testAnydataArrayAsExpTypeForParseString() returns Error? { + string jsonStr1 = string `[["1"], 2.0]`; + anydata[] val1 = check parseString(jsonStr1); + test:assertEquals(val1, [[1], 2.0]); + + string jsonStr2 = string `[["1", 2], 2.0]`; + anydata[] val2 = check parseString(jsonStr2); + test:assertEquals(val2, [[1, 2], 2.0]); + + string jsonStr3 = string `[["1", 2], [2, "3"]]`; + anydata[] val3 = check parseString(jsonStr3); + test:assertEquals(val3, [[1, 2], [2, 3]]); + + string jsonStr4 = string `{"val" : [[1, 2], "2.0", 3.0, [5, 6]]}`; + record {| + anydata[] val; + |} val4 = check parseString(jsonStr4); + test:assertEquals(val4, {val: [[1, 2], 2.0, 3.0, [5, 6]]}); + + string jsonStr41 = string `{"val1" : [[1, 2], "2.0", 3.0, [5, 6]], "val2" : [[1, 2], "2.0", 3.0, [5, 6]]}`; + record {| + anydata[] val1; + anydata[] val2; + |} val41 = check parseString(jsonStr41); + test:assertEquals(val41, {val1: [[1, 2], 2.0, 3.0, [5, 6]], val2: [[1, 2], 2.0, 3.0, [5, 6]]}); + + string jsonStr5 = string `{"val" : [["1", 2], [2, "3"]]}`; + record {| + anydata[] val; + |} val5 = check parseString(jsonStr5); + test:assertEquals(val5, {val: [[1, 2], [2, 3]]}); + + string jsonStr6 = string `[{"val" : [["1", 2], [2, "3"]]}]`; + [record {|anydata[][] val;|}] val6 = check parseString(jsonStr6); + test:assertEquals(val6, [{val: [[1, 2], [2, 3]]}]); +} + @test:Config isolated function testJsonAsExpTypeForParseString() returns Error? { string jsonStr1 = string `1`; diff --git a/ballerina/tests/from_json_test.bal b/ballerina/tests/from_json_test.bal index e663db9..78d3a87 100644 --- a/ballerina/tests/from_json_test.bal +++ b/ballerina/tests/from_json_test.bal @@ -1077,6 +1077,44 @@ isolated function testSingletonAsExpectedTypeForParseAsType() returns Error? { test:assertEquals(val5.value, 1); } +@test:Config +isolated function testAnydataArrayAsExpTypeForParseAsType() returns Error? { + json jsonVal1 = [[1], 2.0]; + anydata[] val1 = check parseAsType(jsonVal1); + test:assertEquals(val1, [[1], 2.0]); + + json jsonVal2 = [["1", 2], 2.0]; + anydata[] val2 = check parseAsType(jsonVal2); + test:assertEquals(val2, [["1", 2], 2.0]); + + json jsonVal3 = [["1", 2], [2, "3"]]; + anydata[] val3 = check parseAsType(jsonVal3); + test:assertEquals(val3, [["1", 2], [2, "3"]]); + + json jsonVal4 = {val : [[1, 2], "2.0", 3.0, [5, 6]]}; + record {| + anydata[] val; + |} val4 = check parseAsType(jsonVal4); + test:assertEquals(val4, {val: [[1, 2], "2.0", 3.0, [5, 6]]}); + + json jsonVal41 = {val1 : [[1, 2], 2.0, 3.0, [5, 6]], val2 : [[1, 2], "2.0", 3.0, [5, 6]]}; + record {| + anydata[] val1; + anydata[] val2; + |} val41 = check parseAsType(jsonVal41); + test:assertEquals(val41, {val1: [[1, 2], 2.0, 3.0, [5, 6]], val2: [[1, 2], "2.0", 3.0, [5, 6]]}); + + json jsonVal5 = {val : [["1", 2], [2, "3"]]}; + record {| + anydata[] val; + |} val5 = check parseAsType(jsonVal5); + test:assertEquals(val5, {val: [["1", 2], [2, "3"]]}); + + json jsonVal6 = [{val : [[1, 2], [2, "James"]]}]; + [record {|anydata[][] val;|}] val6 = check parseAsType(jsonVal6); + test:assertEquals(val6, [{val: [[1, 2], [2, "James"]]}]); +} + @test:Config isolated function testParseAsTypeNegative1() returns Error? { json jsonContent = { From 22cc23a79c81a77c43091d42c4e1c77aebff8d0c Mon Sep 17 00:00:00 2001 From: prakanth <50439067+prakanth97@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:13:54 +0530 Subject: [PATCH 2/2] Fix windows build failure --- .gitattributes | 2 ++ ballerina/tests/from_json_string_test.bal | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitattributes b/.gitattributes index 097f9f9..57e59ae 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,3 +7,5 @@ # These are Windows script files and should use crlf *.bat text eol=crlf +# Ensure all Java files use LF. +*.java eol=lf diff --git a/ballerina/tests/from_json_string_test.bal b/ballerina/tests/from_json_string_test.bal index 0106b6d..0d41704 100644 --- a/ballerina/tests/from_json_string_test.bal +++ b/ballerina/tests/from_json_string_test.bal @@ -1368,8 +1368,7 @@ isolated function testUnalignedJsonContent() returns error? { { "a" : - "h -ello", + "hello", "b": 1 }`; @@ -1377,7 +1376,7 @@ ello", string a; int b; |} val = check parseString(jsonStr); - test:assertEquals(val.a, "h\nello"); + test:assertEquals(val.a, "hello"); test:assertEquals(val.b, 1); }