1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?> 2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="lang_XSingleServiceFactory" script:language="StarBasic"> 4cdf0e10cSrcweir 5cdf0e10cSrcweir 6cdf0e10cSrcweir'************************************************************************* 7cdf0e10cSrcweir' 8*3e6afcd2SAndrew Rist' Licensed to the Apache Software Foundation (ASF) under one 9*3e6afcd2SAndrew Rist' or more contributor license agreements. See the NOTICE file 10*3e6afcd2SAndrew Rist' distributed with this work for additional information 11*3e6afcd2SAndrew Rist' regarding copyright ownership. The ASF licenses this file 12*3e6afcd2SAndrew Rist' to you under the Apache License, Version 2.0 (the 13*3e6afcd2SAndrew Rist' "License"); you may not use this file except in compliance 14*3e6afcd2SAndrew Rist' with the License. You may obtain a copy of the License at 15*3e6afcd2SAndrew Rist' 16*3e6afcd2SAndrew Rist' http://www.apache.org/licenses/LICENSE-2.0 17*3e6afcd2SAndrew Rist' 18*3e6afcd2SAndrew Rist' Unless required by applicable law or agreed to in writing, 19*3e6afcd2SAndrew Rist' software distributed under the License is distributed on an 20*3e6afcd2SAndrew Rist' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 21*3e6afcd2SAndrew Rist' KIND, either express or implied. See the License for the 22*3e6afcd2SAndrew Rist' specific language governing permissions and limitations 23*3e6afcd2SAndrew Rist' under the License. 24cdf0e10cSrcweir' 25cdf0e10cSrcweir'************************************************************************* 26cdf0e10cSrcweir 27cdf0e10cSrcweir 28cdf0e10cSrcweir 29*3e6afcd2SAndrew Rist 30*3e6afcd2SAndrew Rist 31cdf0e10cSrcweir' Be sure that all variables are dimensioned: 32cdf0e10cSrcweiroption explicit 33cdf0e10cSrcweir 34cdf0e10cSrcweir'************************************************************************* 35cdf0e10cSrcweir' This Interface/Service test depends on the following GLOBAL variables, 36cdf0e10cSrcweir' which must be specified in the object creation: 37cdf0e10cSrcweir 38cdf0e10cSrcweir' - Global aArguments As Variant [optional] 39cdf0e10cSrcweir' Array of arguments for createInstanceWithArguments() 40cdf0e10cSrcweir' Global aMustSupportInterface As Variant [optional] 41cdf0e10cSrcweir' Array of Strings with names of interfaces which must be supported by created instance. 42cdf0e10cSrcweir 43cdf0e10cSrcweir'************************************************************************* 44cdf0e10cSrcweir 45cdf0e10cSrcweir 46cdf0e10cSrcweir 47cdf0e10cSrcweir 48cdf0e10cSrcweir 49cdf0e10cSrcweirSub RunTest() 50cdf0e10cSrcweir 51cdf0e10cSrcweir'************************************************************************* 52cdf0e10cSrcweir' INTERFACE: 53cdf0e10cSrcweir' com.sun.star.lang.XSingleServiceFactory 54cdf0e10cSrcweir'************************************************************************* 55cdf0e10cSrcweirOn Error Goto ErrHndl 56cdf0e10cSrcweir Dim bOK As Boolean 57cdf0e10cSrcweir Dim aArgs() 58cdf0e10cSrcweir Dim inst As Object 59cdf0e10cSrcweir Dim i As Integer 60cdf0e10cSrcweir 61cdf0e10cSrcweir Test.StartMethod("createInstance()") 62cdf0e10cSrcweir bOK = true 63cdf0e10cSrcweir if (cObjectName = "inv.Invocation") then 64cdf0e10cSrcweir Out.Log("createInstance() not available in " + cObjectName + " - SKIPPED") 65cdf0e10cSrcweir else 66cdf0e10cSrcweir bOK = bOK AND isObject(oObj.createInstance()) 67cdf0e10cSrcweir end if 68cdf0e10cSrcweir Test.MethodTested("createInstance()", bOK) 69cdf0e10cSrcweir 70cdf0e10cSrcweir Test.StartMethod("createInstanceWithArguments()") 71cdf0e10cSrcweir bOK = true 72cdf0e10cSrcweir if isArray(aArguments) then 73cdf0e10cSrcweir inst = oObj.createInstanceWithArguments(aArguments()) 74cdf0e10cSrcweir else 75cdf0e10cSrcweir inst = oObj.createInstanceWithArguments(aArgs()) 76cdf0e10cSrcweir end if 77cdf0e10cSrcweir 78cdf0e10cSrcweir if NOT isObject(inst) then 79cdf0e10cSrcweir bOK = false 80cdf0e10cSrcweir Out.Log("The returned instance is not object : FAILED.") 81cdf0e10cSrcweir end if 82cdf0e10cSrcweir 83cdf0e10cSrcweir if isArray(aMustSupportInterface) AND bOK then 84cdf0e10cSrcweir Out.Log("Checking supported interfaces ...") 85cdf0e10cSrcweir for i = 0 to ubound(aMustSupportInterface()) 86cdf0e10cSrcweir if NOT hasUnoInterfaces(inst, aMustSupportInterface(i)) then 87cdf0e10cSrcweir Out.Log("The created instance doesn't support '" + aMustSupportInterface(i) + "'") 88cdf0e10cSrcweir bOK = false 89cdf0e10cSrcweir end if 90cdf0e10cSrcweir next i 91cdf0e10cSrcweir end if 92cdf0e10cSrcweir 93cdf0e10cSrcweir Test.MethodTested("createInstanceWithArguments()", bOK) 94cdf0e10cSrcweir 95cdf0e10cSrcweirExit Sub 96cdf0e10cSrcweirErrHndl: 97cdf0e10cSrcweir Test.Exception() 98cdf0e10cSrcweir bOK = false 99cdf0e10cSrcweir resume next 100cdf0e10cSrcweirEnd Sub 101cdf0e10cSrcweir</script:module> 102