/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 .
*/
@Test publicvoid checkBasics() throws Exception
{
createEmptyBag();
System.out.println("testing the basics");
// check whether empty property names are rejected boolean caughtExpected = false; try
{
m_bag.addProperty( "", PropertyAttribute.BOUND, Integer.valueOf( 3 ) );
} catch(com.sun.star.lang.IllegalArgumentException e) { caughtExpected = true; } catch(com.sun.star.uno.Exception e) { } if ( !caughtExpected )
{
fail("empty property names are not rejected by XPropertyContainer::addProperty");
}
// check whether duplicate insertions are rejected
caughtExpected = false; try
{
m_bag.addProperty( VALUE, PropertyAttribute.BOUND, "" );
m_bag.addProperty( VALUE, PropertyAttribute.BOUND, "" );
} catch(com.sun.star.beans.PropertyExistException e) { caughtExpected = true; } catch(com.sun.star.uno.Exception e) { } if ( !caughtExpected )
{
fail("insertion of duplicate property names is not rejected");
}
// try removing the property we just added - this should fail, as it does not have // the REMOVABLE attribute
caughtExpected = false; try
{
m_bag.removeProperty( VALUE);
} catch(com.sun.star.beans.NotRemoveableException e) { caughtExpected = true; } catch(com.sun.star.uno.Exception e) { } if ( !caughtExpected )
{
fail("removing non-removable properties is expected to fail - but it didn't");
}
// try removing a non-existent property
caughtExpected = false; try
{
m_bag.removeProperty( "NonExistent" );
} catch(com.sun.star.beans.UnknownPropertyException e) { caughtExpected = true; } catch(com.sun.star.uno.Exception e) { } if ( !caughtExpected )
{
fail("removing non-existent properties is expected to fail - but it didn't");
}
// try writing and reading a value for the one property we have so far final String testValue = "someArbitraryValue";
m_set.setPropertyValue( VALUE , testValue); final String currentValue = (String)m_set.getPropertyValue( VALUE); if ( !currentValue.equals( testValue ) )
{
fail("set property is not remembered");
}
// try setting an illegal value for the property
caughtExpected = false; try
{
m_set.setPropertyValue( VALUE, Integer.valueOf( 3 ) );
} catch(com.sun.star.lang.IllegalArgumentException e) { caughtExpected = true; } catch(com.sun.star.uno.Exception e) { } if ( !caughtExpected )
{
fail("the bag does not respect the property type we declared for the property");
}
}
// XPropertyAccess.setPropertyValues final PropertyValue expectedValues[] =
{ new PropertyValue( "BoolValue", -1, Boolean.FALSE, PropertyState.DIRECT_VALUE ), new PropertyValue( "StringValue", -1, "some text", PropertyState.DIRECT_VALUE ), new PropertyValue( "IntegerValue", -1, Integer.valueOf( 3 ), PropertyState.DIRECT_VALUE ), new PropertyValue( "InterfaceValue", -1, m_bag, PropertyState.DIRECT_VALUE )
};
m_access.setPropertyValues( expectedValues );
for ( int i=0; i<expectedValues.length; ++i )
{ final Object value = m_set.getPropertyValue( expectedValues[i].Name ); if ( !value.equals( expectedValues[i].Value ) )
{
System.out.println( "property name : " + expectedValues[i].Name );
System.out.println( "expected value: " + expectedValues[i].Value.toString() );
System.out.println( "current value : " + value.toString() );
fail( "retrieving a previously set property (" + expectedValues[i].Value.getClass().toString() + ") failed" );
}
}
// XPropertyAccess.getPropertyValues final PropertyValue currentValues[] = m_access.getPropertyValues(); for ( int i=0; i<currentValues.length; ++i )
{ final String name = currentValues[i].Name; final Object value = currentValues[i].Value; for ( int j=0; j<expectedValues.length; ++j )
{ if ( expectedValues[j].Name.equals( name ) )
{ if ( !expectedValues[j].Value.equals( value ) )
{
System.out.println( "property name : " + expectedValues[j].Name );
System.out.println( "expected value: " + expectedValues[j].Value.toString() );
System.out.println( "current value : " + value.toString() );
fail( "getPropertyValues failed for property '" + name + "' failed" );
} break;
}
}
if ( !m_set.getPropertyValue( name ).equals( value ) )
{
fail("XPropertyAccess::getPropertyValues() and XPropertyset::getPropertyValue results are inconsistent");
}
}
}
@Test publicvoid checkDynamicSet()
{
System.out.println( "checking proper dynamic of the set" );
createStandardBag( false );
final PropertyValue props[] =
{ new PropertyValue( "BoolValue", -1, Boolean.FALSE, PropertyState.DIRECT_VALUE), new PropertyValue( "StringValue", -1, "test", PropertyState.DIRECT_VALUE ), new PropertyValue( "SomeOtherStringValue", -1, "string value", PropertyState.DIRECT_VALUE )
};
// try setting some property values which are not existent boolean caughtExpected = false; try
{
m_access.setPropertyValues( props );
} catch( com.sun.star.beans.UnknownPropertyException e ) { caughtExpected = true; } catch( com.sun.star.uno.Exception e ) { } if ( !caughtExpected )
{
fail("the set shouldn't accept unknown property values, if not explicitly told to do so");
}
// re-create the bag, this time allow it to implicitly add properties
createStandardBag( true ); boolean success = false; try { m_access.setPropertyValues( props ); success = true; } catch( com.sun.star.uno.Exception e ) { } if ( !success )
{
fail("property bag failed to implicitly add unknown properties");
}
// see whether this property was really added, and not just ignored final PropertyValue newlyAdded = props[ props.length - 1 ]; try
{ if ( !m_set.getPropertyValue( newlyAdded.Name ).equals( newlyAdded.Value ) )
{
fail("the new property was not really added, or not added with the proper value");
}
} catch( com.sun.star.uno.Exception e ) { }
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.