From cebe4a08ce4c8ba0e8d627c45ed4ba8ce564aaa2 Mon Sep 17 00:00:00 2001 From: Mohan Date: Wed, 6 May 2020 14:18:02 +0530 Subject: [PATCH] Disable AnydataTest in bstring test module --- .../test/types/anydata/AnydataTest.java | 100 +++------- .../test-src/types/anydata/anydata_test.bal | 177 +++++++++++------- .../test-src/types/anydata/anydata_test.bal | 2 +- 3 files changed, 134 insertions(+), 145 deletions(-) diff --git a/tests/jballerina-bstring-unit-test/src/test/java/org/ballerinalang/test/types/anydata/AnydataTest.java b/tests/jballerina-bstring-unit-test/src/test/java/org/ballerinalang/test/types/anydata/AnydataTest.java index 24956602134e..dd36f31d08cc 100644 --- a/tests/jballerina-bstring-unit-test/src/test/java/org/ballerinalang/test/types/anydata/AnydataTest.java +++ b/tests/jballerina-bstring-unit-test/src/test/java/org/ballerinalang/test/types/anydata/AnydataTest.java @@ -113,43 +113,22 @@ public void testJSONAssignment() { assertEquals(returns[0].stringValue(), "{\"name\":\"apple\", \"color\":\"red\", \"price\":40}"); } - //TODO Table remove - Fix -// @Test(description = "Test table assignment") -// public void testTableAssignment() { -// BValue[] returns = BRunUtil.invoke(result, "testTableAssignment"); -// assertEquals(returns[0].getType().getTag(), TypeTags.TABLE_TAG); -// assertEquals(returns[0].stringValue(), "table {index: [], primaryKey: [\"id\"], data: " + -// "[{id:1, name:\"Mary\", salary:300.5}, {id:2, name:\"John\", salary:200.5}, {id:3, name:\"Jim\", " + -// "salary:330.5}]}"); -// } + @Test(description = "Test table assignment", groups = "brokenOnJBallerina") + public void testTableAssignment() { + BRunUtil.invoke(result, "testTableAssignment"); + } @Test(description = "Test map assignment") public void testMapAssignment() { BRunUtil.invoke(result, "testMapAssignment"); } - @Test(description = "Test for maps constrained by anydata") + @Test(description = "Test for maps constrained by anydata", groups = "brokenOnJBallerina") public void testConstrainedMaps() { - BValue[] returns = BRunUtil.invoke(result, "testConstrainedMaps"); - BMap anydataMap = (BMap) returns[0]; - assertEquals(((BInteger) anydataMap.get("int")).intValue(), 1234); - assertEquals(((BFloat) anydataMap.get("float")).floatValue(), 23.45); - assertTrue(((BBoolean) anydataMap.get("boolean")).booleanValue()); - assertEquals(anydataMap.get("string").stringValue(), "Hello World"); - assertEquals(((BByte) anydataMap.get("byte")).byteValue(), 10); - assertEquals(anydataMap.get("xml").stringValue(), "The Lost World"); - assertEquals(anydataMap.get("record").stringValue(), "{a:15}"); - assertEquals(anydataMap.get("map").stringValue(), "{\"foo\":\"foo\", \"bar\":\"bar\"}"); - assertEquals(anydataMap.get("json").stringValue(), - "{\"name\":\"apple\", \"color\":\"red\", \"price\":40}"); - - //TODO Table remove - Fix -// assertEquals(anydataMap.get("table").stringValue(), "table {index: [], primaryKey: [\"id\"]," + -// " data: [{id:1, name:\"Mary\", salary:300.5}, {id:2, name:\"John\", salary:200.5}, {id:3, " + -// "name:\"Jim\", salary:330.5}]}"); - } - - @Test(description = "Test array assignment") + BRunUtil.invoke(result, "testConstrainedMaps"); + } + + @Test(description = "Test array assignment", groups = "brokenOnJBallerina") public void testArrayAssignment() { BRunUtil.invoke(result, "testArrayAssignment"); } @@ -164,22 +143,12 @@ public void testUnionAssignment() { assertEquals(((BByte) returns[4]).intValue(), 255); } - @Test(description = "Test union assignment for more complex types") + @Test(description = "Test union assignment for more complex types", groups = "brokenOnJBallerina") public void testUnionAssignment2() { - BValue[] returns = BRunUtil.invoke(result, "testUnionAssignment2"); - assertEquals(returns[0].stringValue(), "hello world!"); -// assertEquals(returns[1].stringValue(), "table {index: [], primaryKey: [\"id\"], data: [{id:1, " + -// "name:\"Mary\", salary:300.5}, {id:2, name:\"John\", salary:200.5}, {id:3, name:\"Jim\", " + -// "salary:330.5}]}"); - assertEquals(returns[1].stringValue(), "{\"name\":\"apple\", \"color\":\"red\", \"price\":40}"); - assertEquals(returns[2].stringValue(), "The Lost World"); - assertEquals(returns[3].stringValue(), "{a:15}"); - assertEquals(returns[4].stringValue(), "{ca:15}"); - assertEquals(returns[5].stringValue(), "{\"foo\":{a:15}}"); - assertEquals(returns[6].stringValue(), "[\"hello world!\"]"); - } - - @Test(description = "Test tuple assignment") + BRunUtil.invoke(result, "testUnionAssignment2"); + } + + @Test(description = "Test tuple assignment", groups = "brokenOnJBallerina") public void testTupleAssignment() { BValue[] returns = BRunUtil.invoke(result, "testTupleAssignment"); assertEquals(returns[0].getType().getTag(), TypeTags.TUPLE_TAG); @@ -265,15 +234,10 @@ public void testAnydataToRecord() { assertEquals(returns[0].stringValue(), "{a:15}"); } - //TODO Table remove - Fix -// @Test(description = "Test anydata to table conversion") -// public void testAnydataToTable() { -// BValue[] returns = BRunUtil.invoke(result, "testAnydataToTable"); -// assertEquals(returns[0].getType().getTag(), TypeTags.TABLE_TAG); -// assertEquals(returns[0].stringValue(), "table {index: [], primaryKey: [\"id\"], data: [{id:1, " + -// "name:\"Mary\", salary:300.5}, {id:2, name:\"John\", salary:200.5}, {id:3, name:\"Jim\", " + -// "salary:330.5}]}"); -// } + @Test(description = "Test anydata to table conversion", groups = "brokenOnJBallerina") + public void testAnydataToTable() { + BRunUtil.invoke(result, "testAnydataToTable"); + } @Test(description = "Test anydata to union conversion") public void testAnydataToUnion() { @@ -290,23 +254,9 @@ public void testAnydataToUnion() { assertEquals(((BByte) returns[4]).intValue(), 255); } - @Test(description = "Test anydata to union conversion for complex types") + @Test(description = "Test anydata to union conversion for complex types", groups = "brokenOnJBallerina") public void testAnydataToUnion2() { - BValue[] returns = BRunUtil.invoke(result, "testAnydataToUnion2"); - assertEquals(returns[0].getType().getTag(), TypeTags.MAP_TAG); - assertEquals(returns[1].getType().getTag(), TypeTags.XML_TAG); - assertEquals(returns[2].getType().getTag(), TypeTags.RECORD_TYPE_TAG); - assertEquals(returns[4].getType().getTag(), TypeTags.MAP_TAG); - assertEquals(returns[5].getType().getTag(), TypeTags.ARRAY_TAG); - assertEquals(returns[0].stringValue(), "{\"name\":\"apple\", \"color\":\"red\", \"price\":40}"); - assertEquals(returns[1].stringValue(), "The Lost World"); -// assertEquals(returns[2].stringValue(), "table {index: [], primaryKey: [\"id\"], data: [{id:1, " + -// "name:\"Mary\", salary:300.5}, {id:2, name:\"John\", salary:200.5}, {id:3, name:\"Jim\", " + -// "salary:330.5}]}"); - assertEquals(returns[2].stringValue(), "{a:15}"); - assertEquals(returns[3].stringValue(), "{ca:15}"); - assertEquals(returns[4].stringValue(), "{\"foo\":{a:15}}"); - assertEquals(returns[5].stringValue(), "[{a:15}]"); + BRunUtil.invoke(result, "testAnydataToUnion2"); } @Test(description = "Test anydata to tuple conversion") @@ -326,15 +276,9 @@ public void testAnydataToTuple2() { "Lost World]"); } - @Test(description = "Test anydata to tuple conversion") + @Test(description = "Test anydata to tuple conversion", groups = "brokenOnJBallerina") public void testAnydataToTuple3() { - BValue[] returns = BRunUtil.invokeFunction(result, "testAnydataToTuple3"); - assertEquals(returns[0].getType().getTag(), TypeTags.TUPLE_TAG); - assertEquals(returns[0].getType().toString(), - "[[int|float|string|boolean|byte|json|xml|ClosedFoo|Foo|map|anydata" + - "[][],string],int,float]"); - assertEquals(returns[0].stringValue(), "[[[{\"name\":\"apple\", \"color\":\"red\", \"price\":40}, The " + - "Lost World], \"hello world!\"], 123, 23.45]"); + BRunUtil.invokeFunction(result, "testAnydataToTuple3"); } @Test(description = "Test anydata to nil conversion") diff --git a/tests/jballerina-bstring-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal b/tests/jballerina-bstring-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal index 2df3f26067bd..de9fb638d140 100644 --- a/tests/jballerina-bstring-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal +++ b/tests/jballerina-bstring-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal @@ -23,7 +23,7 @@ type ClosedFoo record {| |}; type Employee record {| - int id; + readonly int id; string name; float salary; |}; @@ -107,19 +107,17 @@ function testJSONAssignment() returns anydata { return adj; } -//TODO Table remove - Fix -//function testTableAssignment() returns anydata { -// table t = table { -// { key id, name, salary }, -// [ -// { 1, "Mary", 300.5 }, -// { 2, "John", 200.5 }, -// { 3, "Jim", 330.5 } -// ] -// }; -// anydata adt = t; -// return adt; -//} +function testTableAssignment() { + table t = table key(id) [ + { id: 1, name: "Mary", salary: 300.5 }, + { id: 2, name: "John", salary: 200.5 }, + { id: 3, name: "Jim", salary: 330.5 } + ]; + + anydata adt = t; + string employeeListAsString = "id=1 name=Mary salary=300.5\nid=2 name=John salary=200.5\nid=3 name=Jim salary=330.5"; + assertEquality(employeeListAsString, adt.toString()); +} function testMapAssignment() { anydata ad; @@ -151,6 +149,9 @@ function testMapAssignment() { map mcr = {}; ad = mcr; + map>> mt = {}; + ad = mt; + map> mmad = {}; ad = mmad; @@ -167,7 +168,7 @@ function testMapAssignment() { ad = mnil; } -function testConstrainedMaps() returns map { +function testConstrainedMaps(){ byte b = 10; Foo foo = {a: 15}; json j = {name: "apple", color: "red", price: 40}; @@ -189,7 +190,24 @@ function testConstrainedMaps() returns map { adm["map"] = smap; adm["nil"] = (); - return adm; + table t = table key(id) [ + { id: 1, name: "Mary", salary: 300.5 }, + { id: 2, name: "John", salary: 200.5 }, + { id: 3, name: "Jim", salary: 330.5 } + ]; + adm["table"] = t; + + assertEquality(1234, adm["int"]); + assertEquality(23.45, adm["float"]); + assertEquality(true, adm["boolean"]); + assertEquality("Hello World", adm["string"]); + assertEquality("10", adm["byte"].toString()); + assertEquality("The Lost World", adm["xml"].toString()); + assertEquality(foo, adm["record"]); + assertEquality(smap, adm["map"]); + assertEquality(j, adm["json"]); + string employeeListAsString = "id=1 name=Mary salary=300.5\nid=2 name=John salary=200.5\nid=3 name=Jim salary=330.5"; + assertEquality(employeeListAsString, adm["table"].toString()); } function testArrayAssignment() { @@ -222,15 +240,13 @@ function testArrayAssignment() { ClosedFoo[] acr = [{ca:10}, {ca:20}]; ad = acr; - //table t = table { - // { key id, name, salary }, - // [ { 1, "Mary", 300.5 }, - // { 2, "John", 200.5 }, - // { 3, "Jim", 330.5 } - // ] - // }; - //table[] at = [t]; - //ad = at; + table t = table key(id) [ + { id: 1, name: "Mary", salary: 300.5 }, + { id: 2, name: "John", salary: 200.5 }, + { id: 3, name: "Jim", salary: 330.5 } + ]; + table[] at = [t]; + ad = at; map m = {}; map[] amad = [m]; @@ -256,7 +272,7 @@ function testAnydataArray() returns anydata[] { } type ValueType int|float|string|boolean|byte; -type DataType ValueType|json|xml|ClosedFoo|Foo|map|anydata[]|(); +type DataType ValueType|table>|json|xml|ClosedFoo|Foo|map|anydata[]|(); function testUnionAssignment() returns anydata[] { anydata[] rets = []; @@ -286,7 +302,7 @@ function testUnionAssignment() returns anydata[] { return rets; } -function testUnionAssignment2() returns anydata[] { +function testUnionAssignment2(){ anydata[] rets = []; int i = 0; @@ -294,16 +310,14 @@ function testUnionAssignment2() returns anydata[] { rets[i] = dt; i += 1; - //table t = table { - // { key id, name, salary }, - // [ { 1, "Mary", 300.5 }, - // { 2, "John", 200.5 }, - // { 3, "Jim", 330.5 } - // ] - // }; - //dt = t; - //rets[i] = dt; - //i += 1; + table t = table key(id) [ + { id: 1, name: "Mary", salary: 300.5 }, + { id: 2, name: "John", salary: 200.5 }, + { id: 3, name: "Jim", salary: 330.5 } + ]; + dt = t; + rets[i] = dt; + i += 1; json j = {name: "apple", color: "red", price: 40}; dt = j; @@ -336,7 +350,14 @@ function testUnionAssignment2() returns anydata[] { rets[i] = dt; i += 1; - return rets; + assertEquality("hello world!", rets[0].toString()); + string employeeListAsString = "id=1 name=Mary salary=300.5\nid=2 name=John salary=200.5\nid=3 name=Jim salary=330.5"; + assertEquality(employeeListAsString, rets[1].toString()); + assertEquality("name=apple color=red price=40", rets[2].toString()); + assertEquality("The Lost World", rets[3].toString()); + assertEquality(foo, rets[4]); + assertEquality(cfoo, rets[5]); + assertEquality(m, rets[6]); } function testTupleAssignment() returns anydata[] { @@ -530,12 +551,12 @@ function testAnydataToMap() { convertedMCfoo = ad; } - //map> mt = {}; - //ad = mt; - //map> convertedMt; - //if (ad is map>) { - // convertedMt = ad; - //} + map>> mt = {}; + ad = mt; + map>> convertedMt; + if (ad is map>>) { + convertedMt = ad; + } map> mmad = {}; ad = mmad; @@ -573,22 +594,20 @@ function testAnydataToMap() { } } -// TODO Table remove - Fix -//function testAnydataToTable() returns table? { -// table t = table { -// { key id, name, salary }, -// [ { 1, "Mary", 300.5 }, -// { 2, "John", 200.5 }, -// { 3, "Jim", 330.5 } -// ] -// }; -// anydata ad = t; -// table|() convertedT = (); -// if (ad is table) { -// convertedT = ad; -// } -// return convertedT; -//} +function testAnydataToTable() { + table t = table key(id)[ + { id: 1, name: "Mary", salary: 300.5 }, + { id: 2, name: "John", salary: 200.5 }, + { id: 3, name: "Jim", salary: 330.5 } + ]; + + anydata ad = t; + table|() convertedT = (); + if (ad is table) { + convertedT = ad; + assertEquality(t, convertedT); + } +} function testAnydataToUnion() returns ValueType?[] { anydata ad = 10; @@ -628,7 +647,7 @@ function testAnydataToUnion() returns ValueType?[] { return vt; } -function testAnydataToUnion2() returns DataType[] { +function testAnydataToUnion2(){ anydata ad; DataType[] dt = []; int i = 0; @@ -647,6 +666,12 @@ function testAnydataToUnion2() returns DataType[] { i += 1; } + table t = table key(id) [ + { id: 1, name: "Mary", salary: 300.5 }, + { id: 2, name: "John", salary: 200.5 }, + { id: 3, name: "Jim", salary: 330.5 } + ]; + Foo foo = {a: 15}; ad = foo; if (ad is DataType) { @@ -677,7 +702,13 @@ function testAnydataToUnion2() returns DataType[] { i += 1; } - return dt; + assertEquality(j, dt[0]); + assertEquality(x, dt[1]); + assertEquality(t, dt[2]); + assertEquality(foo, dt[3]); + assertEquality(cfoo, dt[4]); + assertEquality(m, dt[5]); + assertEquality(adr, dt[6]); } function testAnydataToTuple() returns [int, float, boolean, string, byte]? { @@ -708,7 +739,7 @@ function testAnydataToTuple2() returns [json, xml]? { return (); } -function testAnydataToTuple3() returns [[DataType[], string], int, float]? { +function testAnydataToTuple3(){ anydata ad; json j = { name: "apple", color: "red", price: 40 }; @@ -719,10 +750,8 @@ function testAnydataToTuple3() returns [[DataType[], string], int, float]? { ad = nt; if (ad is [[DataType[], string], int, float]) { - return ad; + assertEquality("name=apple color=red price=40 The Lost World hello world!", ad[0].toString()); } - - return (); } function testAnydataToNil() returns int? { @@ -911,3 +940,19 @@ function testRecordsWithErrorsAsAnydata() returns boolean { return m3["err"] === e1 && m4["err"] === e3 && m3 === a1 && m2 === m4; } + +type AssertionError error; + +const ASSERTION_ERROR_REASON = "AssertionError"; + +function assertEquality(any|error expected, any|error actual) { + if expected is anydata && actual is anydata && expected == actual { + return; + } + + if expected === actual { + return; + } + + panic AssertionError(message = "expected '" + expected.toString() + "', found '" + actual.toString () + "'"); +} diff --git a/tests/jballerina-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal b/tests/jballerina-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal index a47c2c8a5261..c8eeda667b68 100644 --- a/tests/jballerina-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal +++ b/tests/jballerina-unit-test/src/test/resources/test-src/types/anydata/anydata_test.bal @@ -597,7 +597,7 @@ function testAnydataToMap() { } } -function testAnydataToTable() returns table? { +function testAnydataToTable(){ table t = table key(id)[ { id: 1, name: "Mary", salary: 300.5 }, { id: 2, name: "John", salary: 200.5 },