/**************************************************************
*
* 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.
*
*************************************************************/
package ifc.frame;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XModuleManager;
import lib.MultiMethodTest;
import lib.Status;
import lib.StatusException;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.frame.UnknownModuleException;
/**
* Testing com.sun.star.frame.XModuleManager
* interface methods:
*
identify()
* This test needs the following object relations : *
'XModuleManager.XFrame'
(of type PropertyValue[]
):
* PropertyValue[n].Value : a XFrame
* PropertyValue[n].Name : the expected return value of idendify()
'XModuleManager.XController'
(of type PropertyValue[]
):
* PropertyValue[n].Value : a XController
* PropertyValue[n].Name : the expected return value of idendify()
'XModuleManager.XModel'
(of type PropertyValue[]
):
* PropertyValue[n].Value : a XFrame
* PropertyValue[n].Name : the expected return value of idendify()
* Test is NOT multithread compilant.
* @see com.sun.star.frame.XModuleManager */ public class _XModuleManager extends MultiMethodTest { /** Test calls the method.
* The onject relations XModuleManager.XFrame
,
* XModuleManager.XController
and XModuleManager.XModel
* are sequenzes of PropertyValue
. The value of a PropertyValue
* containes a XFrame
, XController
or a
* XModel
. The name of the PropertyValue contains the expected return
* value of method indetify()
if the method was called with
* coresponding value.
* As enhancement the method identify()
was called with incvalid
* parameter. In this case the thrown exceptions was catched.
*/
public XModuleManager oObj = null;
/**
* Test calls the method.
* Has OK status if the method returns expected values, that's equal to * previously obtained object relation 'Frame'. * The following method tests are to be completed successfully before: *
attachFrame()
: attachs frame obtained object
* relation 'Frame' identify()
was tesed for every entry in sequeze of
* object relations.
*/
public void _identify() {
boolean ok = true;
log.println("testing frame sequenze...");
ok &= testSequenze(xFrameSeq);
log.println("testing controller sequenze...");
ok &= testSequenze(xControllerSeq);
log.println("testing model sequenze...");
ok &= testSequenze(xModelSeq);
tRes.tested("identify()", ok);
log.println("testing invalid objects...");
try{
oObj.identify(oObj);
} catch (IllegalArgumentException e){
log.println("expected exception.");
} catch (UnknownModuleException e){
log.println("expected exception.");
}
}
private boolean testSequenze(PropertyValue[] sequenze){
boolean ok = true;
for (int i = 0 ; i < sequenze.length; i++){
try{
log.println("testing '" + sequenze[i].Name + "'");
if (oObj.identify(sequenze[i].Value).equals(
sequenze[i].Name)){
ok &= ok;
}else{
log.println("failure: returned value: '" +
oObj.identify(sequenze[i].Value) +
"' ,expected value: '" + sequenze[i].Name + "'");
ok = false;
}
} catch (IllegalArgumentException e){
log.println("Could not get value of sequenze '" +
sequenze[i].Name + "'");
return false;
} catch (UnknownModuleException e){
log.println("Could not indetify value of sequenze '" +
sequenze[i].Name + "'");
return false;
}
}
return ok;
}
}