From b9b9b3afde384d2e24dcbf9a60fa9ee227576114 Mon Sep 17 00:00:00 2001 From: Alain Romedenne Date: Mon, 7 Feb 2022 18:12:57 +0100 Subject: tdf#114263 tdf#147262 CallByName() function LibO Basic test unit Change-Id: Ia9bd38c0da4d3f94b824ebb1f98ac912758e8d38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129610 Tested-by: Jenkins Reviewed-by: Mike Kaganski --- basic/qa/basic_coverage/test_CallByName.bas | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 basic/qa/basic_coverage/test_CallByName.bas (limited to 'basic') diff --git a/basic/qa/basic_coverage/test_CallByName.bas b/basic/qa/basic_coverage/test_CallByName.bas new file mode 100644 index 000000000000..35578ee475c0 --- /dev/null +++ b/basic/qa/basic_coverage/test_CallByName.bas @@ -0,0 +1,36 @@ +Option Explicit + +Function doUnitTest() As String + TestUtil.TestInit + verify_CallByName + doUnitTest = TestUtil.GetResult() +End Function + +Sub verify_CallByName() + Const _Get = 2, _Let = 4, _Method = 1, _Set = 8 + + On Error GoTo errorHandler + + ' Basic modules are Objects + TestUtil.AssertEqual(CallByName(TestUtil, "failCount", _Get), 0, "CallByName(TestUtil, ""failCount"", _Get") + TestUtil.AssertEqual(CallByName(TestUtil, "passCount", _Get), 1, "CallByName(TestUtil, ""passCount"", _Get") + TestUtil.AssertEqual(CallByName(TestUtil, "GetResult", _Method), "OK", "CallByName(TestUtil, ""GetResult"", _Method") + + ' Collection instances + Dim c As New Collection + c.Add(100, "1st") : c.Add(101) + TestUtil.AssertEqual(CallByName(c,"Count", _Get), 2, "CallByName(c,""Count"", _Get)") + c.Remove(2) + TestUtil.AssertEqual(CallByName(callType:=_Get, object:=c, procName:="Count"), 1, _ + "CallByName(callType:=_Get, object:=c, procName:=""Count"")") + + ' ClassModule instances or UNO services are 'CallByNamable' objects too! + ' see https://help.libreoffice.org/7.4/en-US/text/sbasic/shared/CallByName.html?DbPAR=BASIC#bm_id3150669 + ' for more _Let and _Set examples + + Exit Sub +errorHandler: + TestUtil.ReportErrorHandler("verify_CallByName", Err, Error$, Erl) + Resume Next + +End Sub \ No newline at end of file -- cgit