1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="lang_XMultiServiceFactory" script:language="StarBasic">
4
5
6'*************************************************************************
7'
8'  Licensed to the Apache Software Foundation (ASF) under one
9'  or more contributor license agreements.  See the NOTICE file
10'  distributed with this work for additional information
11'  regarding copyright ownership.  The ASF licenses this file
12'  to you under the Apache License, Version 2.0 (the
13'  "License"); you may not use this file except in compliance
14'  with the License.  You may obtain a copy of the License at
15'
16'    http://www.apache.org/licenses/LICENSE-2.0
17'
18'  Unless required by applicable law or agreed to in writing,
19'  software distributed under the License is distributed on an
20'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21'  KIND, either express or implied.  See the License for the
22'  specific language governing permissions and limitations
23'  under the License.
24'
25'*************************************************************************
26
27
28
29
30
31'*************************************************************************
32' This Interface/Service test depends on the following GLOBAL variables,
33' which must be specified in the object creation:
34
35'     - Global cServiceName As String ie. "com.sun.star.drawing.RectangleShape"
36'     - Global bCreateInstanceWithoutArguments As Boolean
37'     - Global aArguments() As Variant
38
39'*************************************************************************
40
41
42
43
44
45Sub RunTest()
46
47'*************************************************************************
48' INTERFACE:
49' com.sun.star.lang.XMultiServiceFactory
50'*************************************************************************
51On Error Goto ErrHndl
52    Dim bOK As Boolean
53    Dim oInstance1, oInstance2 As Object
54    Dim Names
55
56    Test.StartMethod("getAvailableServiceNames()")
57    bOK = true
58    Names = oObj.getAvailableServiceNames()
59    Dim bFound As Boolean
60    bFound = false
61    for i = 0 to ubound(Names)
62        if Names(i) = cServiceName then bFound = true
63    next i
64    if (NOT bFound) then Out.Log("Can't find '" &amp; cServiceName &amp; "' in returned array.")
65    bOK = bOK AND bFound
66    Test.MethodTested("getAvailableServiceNames()", bOK)
67
68    Test.StartMethod("createInstance()")
69    bOK = true
70    if bCreateInstanceWithoutArguments then
71        oInstance1 = oObj.createInstance(cServiceName)
72        bOK = bOK AND NOT isNull(oInstance1)
73    else
74        Out.Log("createInstance() skipped for this object.")
75    end if
76    Test.MethodTested("createInstance()", bOK)
77
78    Test.StartMethod("createInstanceWithArguments()")
79    bOK = true
80    if (cObjectName = "sd.SdXImpressDocument") then
81        Out.Log("Object SdXImpressDocument doesn't suppotr createInstanceWithArguments().")
82    else
83        oInstance2 = oObj.createInstanceWithArguments(cServiceName, aArguments())
84        bOK = bOK AND NOT isNULL(oInstance2)
85    end if
86    Test.MethodTested("createInstanceWithArguments()", bOK)
87
88Exit Sub
89ErrHndl:
90    Test.Exception()
91    bOK = false
92    resume next
93End Sub
94</script:module>
95