blob: 308febcabf43b3fbc979d71d130cbaa1b8ac5ea3 [file] [log] [blame]
#**************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#**************************************************************
import uno
import unohelper
from com.sun.star.lang import IllegalArgumentException,XServiceInfo
from com.sun.star.uno import RuntimeException
from com.sun.star.beans import UnknownPropertyException
from test.testtools.bridgetest import TestData,XRecursiveCall,XBridgeTestBase
g_ImplementationHelper = unohelper.ImplementationHelper()
g_implName = "org.openoffice.comp.pyuno.PythonTestObject"
g_attribs = "RuntimeException", "Bool", "Char", "Byte", "Short", "UShort", \
"Long", "ULong", "Hyper", "UHyper", "Float", "Double", "Enum", \
"String", "Interface", "Any" , "Sequence" , "Struct"
def assign( rData, bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper,\
nUHyper, fFloat, fDouble, eEnum, rStr, xTest, rAny ):
rData.Bool = bBool;
rData.Char = cChar;
rData.Byte = nByte;
rData.Short = nShort;
rData.UShort = nUShort;
rData.Long = nLong;
rData.ULong = nULong;
rData.Hyper = nHyper;
rData.UHyper = nUHyper;
rData.Float = fFloat;
rData.Double = fDouble;
rData.Enum = eEnum;
rData.String = rStr;
rData.Interface = xTest;
rData.Any = rAny;
class MyRecursiveCall( XRecursiveCall, unohelper.Base ):
def callRecursivly( xCall, nToCall ):
if nToCall:
xCall.callRecursivly( self, nToCall -1 )
class SampleUnoComponent( XBridgeTestBase,XServiceInfo ):
def __init__(self,ctx):
self.__dict__["callid"] = 0
self.__dict__["sequenceBroken"] = 0
def transportAny( self, value ):
return value
def raiseException( self, ArgumentPosition, Message, Context ):
raise IllegalArgumentException( Message, Context, ArgumentPosition )
def raiseRuntimeExceptionOneway(self, Message, Context ):
raise RuntimeException( Message, Context )
def setValues( self, bBool, cChar, nByte, nShort, nUShort, nLong,\
nULong, nHyper, nUHyper, fFloat, fDouble, eEnum, \
aString, xInterface, aAny, aSequence, aStruct ):
self.__dict__["data"] = TestDataElements( bBool, cChar, nByte, nShort, nUShort, nLong,
nULong, nHyper, nUHyper, fFloat, fDouble, eEnum, aStruct, xInterface,
aAny, aSequence )
self.__dict__["Struct"] = aStruct
def setValues2( self, bBool, cChar, nByte, nShort, nUShort, nLong, nULong,\
nHyper, nUHyper, fFloat, fDouble, eEnum, \
aString, xInterface, aAny, aSequence, aStruct ):
self.__dict__["Struct"] = TestData( cChar, nByte, nShort, nUShort, nLong, nULong, nHyper,\
nUHyper, fFloat, fDouble, eEnum, aStruct, xInterface,\
aAny, aSequence )
self.__dict__["Struct"] = aStruct
return bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, nULong, \
nHyper, nUHyper, fFloat, fDouble, eEnum, aStruct, xInterface, aAny, \
(aSequence[1],aSequence[0]), aStruct
def getValues(self, a,b,c,d,e,f,g,h, i,j,k,l,m,n):
v = self.__dict__["data"]
return self.__dict__["Struct"],v.Bool, v.Char, v.Byte, v.Short, v.UShort, v.Long, \
v.ULong, v.Hyper, v.UHyper, v.Float, v.Double, v.Enum, v.String, v.Interface, \
v.Any, v.Sequence, self.__dict__["Struct"]
def call( self, callid, nWaitMUSEC ):
if self.__dict__["callid"] >= callid:
self.__dict__["sequenceBroken"] = 1
else:
self.__dict__["callid"] = callid
def callOneway( self, nCallId, nWaitMUSEC ):
call( nCallId, nWaitMUSEC )
def sequenceOfCallTestPassed():
return self.__dict__["sequenceBroken"]
def startRecursiveCall( xCall , nToCall ):
if nToCall:
xCall.callRecursivly( MyRecursiveCall(), nToCall -1 )
def checkExistence( self, name ):
found = 0
for x in g_attribs:
if x == name:
found = 1
break
if not found:
raise UnknownPropertyException( "Property "+name+" is unknown", self )
def __setattr__( self, name, value ):
checkExistence( name )
self.__dict__[name] = value
def __getattr__( self, name ):
checkExistence( name )
return self.__dict__[name]
def getSupportedServices( self ):
return g_ImplementationHelper.getSupportedServices(g_implName)
def supportsService( self, ServiceName ):
return g_ImplementationHelper.supportsService( g_implName, ServiceName )
def getImplementationName(self):
return g_implName
g_ImplementationHelper.addImplementation( \
SampleUnoComponent,g_implName,("com.sun.star.test.bridge.PythonTestObject",),)
#g_ImplementationEntries = \
# unohelper.ImplementationEntry( \
# "org.openoffice.comp.SamplePythonComponent", \
# ("com.sun.star.test.bridge.PythonTestObject",), \
# SampleUnoComponent) \
# ,