Skip to content

Commit a537e99

Browse files
committed
Add tests with anydata array as expected type
1 parent d689f4f commit a537e99

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

ballerina/tests/from_json_string_test.bal

+38
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,44 @@ isolated function testAnydataAsExpTypeForParseString() returns Error? {
704704
test:assertEquals(val5, [[1], 2]);
705705
}
706706

707+
@test:Config
708+
isolated function testAnydataArrayAsExpTypeForParseString() returns Error? {
709+
string jsonStr1 = string `[["1"], 2.0]`;
710+
anydata[] val1 = check parseString(jsonStr1);
711+
test:assertEquals(val1, [[1], 2.0]);
712+
713+
string jsonStr2 = string `[["1", 2], 2.0]`;
714+
anydata[] val2 = check parseString(jsonStr2);
715+
test:assertEquals(val2, [[1, 2], 2.0]);
716+
717+
string jsonStr3 = string `[["1", 2], [2, "3"]]`;
718+
anydata[] val3 = check parseString(jsonStr3);
719+
test:assertEquals(val3, [[1, 2], [2, 3]]);
720+
721+
string jsonStr4 = string `{"val" : [[1, 2], "2.0", 3.0, [5, 6]]}`;
722+
record {|
723+
anydata[] val;
724+
|} val4 = check parseString(jsonStr4);
725+
test:assertEquals(val4, {val: [[1, 2], 2.0, 3.0, [5, 6]]});
726+
727+
string jsonStr41 = string `{"val1" : [[1, 2], "2.0", 3.0, [5, 6]], "val2" : [[1, 2], "2.0", 3.0, [5, 6]]}`;
728+
record {|
729+
anydata[] val1;
730+
anydata[] val2;
731+
|} val41 = check parseString(jsonStr41);
732+
test:assertEquals(val41, {val1: [[1, 2], 2.0, 3.0, [5, 6]], val2: [[1, 2], 2.0, 3.0, [5, 6]]});
733+
734+
string jsonStr5 = string `{"val" : [["1", 2], [2, "3"]]}`;
735+
record {|
736+
anydata[] val;
737+
|} val5 = check parseString(jsonStr5);
738+
test:assertEquals(val5, {val: [[1, 2], [2, 3]]});
739+
740+
string jsonStr6 = string `[{"val" : [["1", 2], [2, "3"]]}]`;
741+
[record {|anydata[][] val;|}] val6 = check parseString(jsonStr6);
742+
test:assertEquals(val6, [{val: [[1, 2], [2, 3]]}]);
743+
}
744+
707745
@test:Config
708746
isolated function testJsonAsExpTypeForParseString() returns Error? {
709747
string jsonStr1 = string `1`;

ballerina/tests/from_json_test.bal

+38
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,44 @@ isolated function testSingletonAsExpectedTypeForParseAsType() returns Error? {
10771077
test:assertEquals(val5.value, 1);
10781078
}
10791079

1080+
@test:Config
1081+
isolated function testAnydataArrayAsExpTypeForParseAsType() returns Error? {
1082+
json jsonVal1 = [[1], 2.0];
1083+
anydata[] val1 = check parseAsType(jsonVal1);
1084+
test:assertEquals(val1, [[1], 2.0]);
1085+
1086+
json jsonVal2 = [["1", 2], 2.0];
1087+
anydata[] val2 = check parseAsType(jsonVal2);
1088+
test:assertEquals(val2, [["1", 2], 2.0]);
1089+
1090+
json jsonVal3 = [["1", 2], [2, "3"]];
1091+
anydata[] val3 = check parseAsType(jsonVal3);
1092+
test:assertEquals(val3, [["1", 2], [2, "3"]]);
1093+
1094+
json jsonVal4 = {val : [[1, 2], "2.0", 3.0, [5, 6]]};
1095+
record {|
1096+
anydata[] val;
1097+
|} val4 = check parseAsType(jsonVal4);
1098+
test:assertEquals(val4, {val: [[1, 2], "2.0", 3.0, [5, 6]]});
1099+
1100+
json jsonVal41 = {val1 : [[1, 2], 2.0, 3.0, [5, 6]], val2 : [[1, 2], "2.0", 3.0, [5, 6]]};
1101+
record {|
1102+
anydata[] val1;
1103+
anydata[] val2;
1104+
|} val41 = check parseAsType(jsonVal41);
1105+
test:assertEquals(val41, {val1: [[1, 2], 2.0, 3.0, [5, 6]], val2: [[1, 2], "2.0", 3.0, [5, 6]]});
1106+
1107+
json jsonVal5 = {val : [["1", 2], [2, "3"]]};
1108+
record {|
1109+
anydata[] val;
1110+
|} val5 = check parseAsType(jsonVal5);
1111+
test:assertEquals(val5, {val: [["1", 2], [2, "3"]]});
1112+
1113+
json jsonVal6 = [{val : [[1, 2], [2, "James"]]}];
1114+
[record {|anydata[][] val;|}] val6 = check parseAsType(jsonVal6);
1115+
test:assertEquals(val6, [{val: [[1, 2], [2, "James"]]}]);
1116+
}
1117+
10801118
@test:Config
10811119
isolated function testParseAsTypeNegative1() returns Error? {
10821120
json jsonContent = {

0 commit comments

Comments
 (0)