Skip to content

Commit

Permalink
Split the test function
Browse files Browse the repository at this point in the history
  • Loading branch information
poorna2152 committed Sep 19, 2024
1 parent 5e9ee97 commit 2caeea3
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,33 +41,33 @@ public void setup() {
lexCompileRes = BCompileUtil.compile("test-src/types/xml/xml-attribute-access-lax-behavior.bal");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testBasicAttributeAccessSyntax() {
BRunUtil.invoke(compileResult, "getElementAttrBasic");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testBasicOptionalAttributeAccessSyntax() {
BRunUtil.invoke(compileResult, "getOptionalElementAttrBasic");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testUserDefinedAttributeAccessSyntax() {
BRunUtil.invoke(compileResult, "getUserDefinedTypeElementAttrBasic");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testUserDefinedOptionalAttributeAccessSyntax() {
BRunUtil.invoke(compileResult, "getUserDefinedTypeOptionalElementAttrBasic");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testAttributeAccessSyntaxWithNS() {
Object result = BRunUtil.invoke(compileResult, "getElementAttrWithNSPrefix");
Assert.assertEquals(result.toString(), "attr-with-ns-val");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testGetAttrOfASequence() {
Object result = BRunUtil.invoke(compileResult, "getAttrOfASequence");
Assert.assertEquals(result.toString(),
Expand Down Expand Up @@ -159,21 +159,26 @@ public void testXMLDirectAttributeAccess() {
Assert.assertTrue((Boolean) result.get(3));
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testXMLAfterRemoveAttribute() {
BRunUtil.invoke(compileResult, "testXMLAfterRemoveAttribute");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testXMLIndexedOptionalAttributeAccess() {
BRunUtil.invoke(compileResult, "testXMLIndexedOptionalAttributeAccess");
}

@Test(enabled = false) // disabling until providing semantic support for step extension
@Test
public void testErrorsOnXMLIndexedOptionalAttributeAccess() {
BRunUtil.invoke(compileResult, "testErrorsOnXMLIndexedOptionalAttributeAccess");
}

@Test
public void testXMLIndexedOptionalAttributeAccessWithNS() {
BRunUtil.invoke(compileResult, "testXMLIndexedOptionalAttributeAccessWithNS");
}

@Test
public void testXmlAttributeAccessOnXmlUnionTypes() {
BRunUtil.invoke(compileResult, "testXmlAttributeAccessOnXmlUnionTypes");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,68 +96,70 @@ function testXMLIndexedOptionalAttributeAccess() {
assertNonErrorValue(x1.<item>[0][0]?.id, "0");
assertNonErrorValue(x1.<item>[0][2]?.id, ());

xml x2 = xml `<a i="2"><b n="3">book</b><c p="4">10</c><c p="5">10</c></a>`;
assertNonErrorValue((x2/*)[0]?.n, "3");
assertNonErrorValue(x2/*.<c>[0]?.p, "4");
assertNonErrorValue(x2/*.<c>[1]?.p, "5");
assertNonErrorValue(x2/*.<d>[0]?.p, ());
assertNonErrorValue((x2/<c>)[0]?.p, "4");
assertNonErrorValue((x2/<*>)[0]?.n, "3");
assertNonErrorValue((x2/<*>)[2]?.p, "5");
assertNonErrorValue((x2/<*>)[0]?.e, ());
assertNonErrorValue(x2/*.<c>[2]?.p, ());
assertNonErrorValue((x2/*)[0][0]?.n, "3");
assertNonErrorValue((x2/*)[1][0]?.p, "4");

xml x3 = xml `<a i="2"><b n="3">book</b><c p="4"><d g="5">10</d><d g="6">11</d></c></a>`;
assertNonErrorValue((x3/**/<d>)[0]?.g, "5");
assertNonErrorValue((x3/**/<d>)[1]?.g, "6");
assertNonErrorValue((x3/**/<b>)[0]?.n, "3");
assertNonErrorValue((x3/**/<b>)[0]?.n, "3");
assertNonErrorValue((x3/**/<e>)[0]?.n, ());
assertNonErrorValue((x3/**/<d>)[0]?.f, ());
assertNonErrorValue((x3/**/<d>)[3]?.g, ());
assertNonErrorValue((x3/**/<d>)[0][0]?.g, "5");
assertNonErrorValue((x3/**/<c>)[0][1]?.p, ());
}

function testXMLIndexedOptionalAttributeAccessWithNS() {
xmlns "ns" as ns2;
xmlns "ps" as ns3;
xml x2 = xml `<ns2:a id="1">ns2a</ns2:a><ns2:a id="2">ns2a2</ns2:a><ns3:a id="3">ns3a</ns3:a>`;
assertNonErrorValue(x2.<ns2:a>[0]?.id, "1");
assertNonErrorValue(x2.<ns2:a>[1]?.id, "2");
assertNonErrorValue(x2.<ns3:*>[0]?.id, "3");
assertNonErrorValue(x2.<ns2:*>[0]?.id, "1");
assertNonErrorValue(x2.<ns2:*>[1]?.id, "2");
assertNonErrorValue(x2.<ns2:a|ns3:a>[2]?.id, "3");
assertNonErrorValue(x2.<ns2:c>[0]?.id, ());
assertNonErrorValue(x2.<ns2:a>[0]?.j, ());
assertNonErrorValue(x2.<ns2:*>[0]?.k, ());
assertNonErrorValue(x2.<ns2:a>[3]?.id, ());
assertNonErrorValue(x2.<ns2:a>[0][0]?.id, "1");
assertNonErrorValue(x2.<ns2:c>[0][0]?.id, ());
assertNonErrorValue(x2.<ns2:*>[1][0]?.id, "2");

xml x3 = xml `<a i="2"><b n="3">book</b><c p="4">10</c><c p="5">10</c></a>`;
assertNonErrorValue((x3/*)[0]?.n, "3");
assertNonErrorValue(x3/*.<c>[0]?.p, "4");
assertNonErrorValue(x3/*.<c>[1]?.p, "5");
assertNonErrorValue(x3/*.<d>[0]?.p, ());
assertNonErrorValue((x3/<c>)[0]?.p, "4");
assertNonErrorValue((x3/<*>)[0]?.n, "3");
assertNonErrorValue((x3/<*>)[2]?.p, "5");
assertNonErrorValue((x3/<*>)[0]?.e, ());
assertNonErrorValue(x3/*.<c>[2]?.p, ());
assertNonErrorValue((x3/*)[0][0]?.n, "3");
assertNonErrorValue((x3/*)[1][0]?.p, "4");

xml x4 = xml `<a i="2"><ns2:b n="3">book</ns2:b><ns3:c p="4">10</ns3:c></a>`;
assertNonErrorValue(x4/*.<ns2:*>[0]?.n, "3");
assertNonErrorValue(x4/*.<ns3:c>[0]?.p, "4");
assertNonErrorValue((x4/<ns2:b>)[0]?.n, "3");
assertNonErrorValue((x4/<ns3:*>)[0]?.p, "4");
assertNonErrorValue((x4/<ns2:*|ns3:*>)[1]?.p, "4");
assertNonErrorValue((x4/<ns3:*>)[0]?.k, ());
assertNonErrorValue((x4/<ns2:b>)[0]?.l, ());
assertNonErrorValue((x4/<ns2:d>)[0]?.l, ());
assertNonErrorValue((x4/<ns2:*|ns3:*>)[4]?.p, ());
assertNonErrorValue(x4/*.<ns2:*>[0][0]?.n, "3");
assertNonErrorValue(x4/*.<ns2:*|ns3:*>[2][0]?.p, ());

xml x5 = xml `<a i="2"><b n="3">book</b><c p="4"><d g="5">10</d><d g="6">11</d></c></a>`;
assertNonErrorValue((x5/**/<d>)[0]?.g, "5");
assertNonErrorValue((x5/**/<d>)[1]?.g, "6");
assertNonErrorValue((x5/**/<b>)[0]?.n, "3");
assertNonErrorValue((x5/**/<b>)[0]?.n, "3");
assertNonErrorValue((x5/**/<e>)[0]?.n, ());
assertNonErrorValue((x5/**/<d>)[0]?.f, ());
assertNonErrorValue((x5/**/<d>)[3]?.g, ());
assertNonErrorValue((x5/**/<d>)[0][0]?.g, "5");
assertNonErrorValue((x5/**/<c>)[0][1]?.p, ());

xml x6 = xml `<a i="2"><ns2:b n="3">book</ns2:b><c p="4"><ns2:d g="5">10</ns2:d><ns2:d g="6">1</ns2:d></c></a>`;
assertNonErrorValue((x6/**/<ns2:d>)[0]?.g, "5");
assertNonErrorValue((x6/**/<ns2:d>)[1]?.g, "6");
assertNonErrorValue((x6/**/<ns2:e>)[0]?.g, ());
assertNonErrorValue((x6/**/<ns2:d>)[0]?.j, ());
assertNonErrorValue((x6/**/<ns2:d>)[5]?.g, ());
assertNonErrorValue((x6/**/<ns2:d>)[1][0]?.g, "6");
assertNonErrorValue((x6/**/<ns2:c>)[1][0]?.g, ());
xml x1 = xml `<ns2:a id="1">ns2a</ns2:a><ns2:a id="2">ns2a2</ns2:a><ns3:a id="3">ns3a</ns3:a>`;
assertNonErrorValue(x1.<ns2:a>[0]?.id, "1");
assertNonErrorValue(x1.<ns2:a>[1]?.id, "2");
assertNonErrorValue(x1.<ns3:*>[0]?.id, "3");
assertNonErrorValue(x1.<ns2:*>[0]?.id, "1");
assertNonErrorValue(x1.<ns2:*>[1]?.id, "2");
assertNonErrorValue(x1.<ns2:a|ns3:a>[2]?.id, "3");
assertNonErrorValue(x1.<ns2:c>[0]?.id, ());
assertNonErrorValue(x1.<ns2:a>[0]?.j, ());
assertNonErrorValue(x1.<ns2:*>[0]?.k, ());
assertNonErrorValue(x1.<ns2:a>[3]?.id, ());
assertNonErrorValue(x1.<ns2:a>[0][0]?.id, "1");
assertNonErrorValue(x1.<ns2:c>[0][0]?.id, ());
assertNonErrorValue(x1.<ns2:*>[1][0]?.id, "2");

xml x2 = xml `<a i="2"><ns2:b n="3">book</ns2:b><ns3:c p="4">10</ns3:c></a>`;
assertNonErrorValue(x2/*.<ns2:*>[0]?.n, "3");
assertNonErrorValue(x2/*.<ns3:c>[0]?.p, "4");
assertNonErrorValue((x2/<ns2:b>)[0]?.n, "3");
assertNonErrorValue((x2/<ns3:*>)[0]?.p, "4");
assertNonErrorValue((x2/<ns2:*|ns3:*>)[1]?.p, "4");
assertNonErrorValue((x2/<ns3:*>)[0]?.k, ());
assertNonErrorValue((x2/<ns2:b>)[0]?.l, ());
assertNonErrorValue((x2/<ns2:d>)[0]?.l, ());
assertNonErrorValue((x2/<ns2:*|ns3:*>)[4]?.p, ());
assertNonErrorValue(x2/*.<ns2:*>[0][0]?.n, "3");
assertNonErrorValue(x2/*.<ns2:*|ns3:*>[2][0]?.p, ());

xml x3 = xml `<a i="2"><ns2:b n="3">book</ns2:b><c p="4"><ns2:d g="5">10</ns2:d><ns2:d g="6">1</ns2:d></c></a>`;
assertNonErrorValue((x3/**/<ns2:d>)[0]?.g, "5");
assertNonErrorValue((x3/**/<ns2:d>)[1]?.g, "6");
assertNonErrorValue((x3/**/<ns2:e>)[0]?.g, ());
assertNonErrorValue((x3/**/<ns2:d>)[0]?.j, ());
assertNonErrorValue((x3/**/<ns2:d>)[5]?.g, ());
assertNonErrorValue((x3/**/<ns2:d>)[1][0]?.g, "6");
assertNonErrorValue((x3/**/<ns2:c>)[1][0]?.g, ());
}

function testErrorsOnXMLIndexedOptionalAttributeAccess() {
Expand Down

0 comments on commit 2caeea3

Please sign in to comment.