assertFalse( handle.isMustMatch( ) );
assertTrue( handle.isMustMatch( ) );
	public void testGetsPropertiesOnParameter( ) throws SemanticException	{		SlotHandle params = designHandle.getParameters( );		ScalarParameterHandle handle = (ScalarParameterHandle) params.get( 0 );		assertFalse( handle.isHidden( ) );		assertEquals( DesignChoiceConstants.PARAM_TYPE_DECIMAL, handle				.getDataType( ) );		assertFalse( handle.isConcealValue( ) );		assertEquals( "State", handle.getDefaultValue( ) ); //$NON-NLS-1$		assertTrue( handle.allowNull( ) );		assertFalse( handle.allowBlank( ) );		assertEquals( "##,###.##", handle.getFormat( ) ); //$NON-NLS-1$		assertEquals( DesignChoiceConstants.PARAM_CONTROL_CHECK_BOX, handle				.getControlType( ) );		assertEquals( DesignChoiceConstants.SCALAR_PARAM_ALIGN_LEFT, handle				.getAlignment( ) );		// no list defined, should be null.		Iterator iter = handle.choiceIterator( );		int count = 0;		for ( ; iter.hasNext( ); iter.next( ) )			count++;		assertEquals( 0, count );		assertEquals( "scalar para help", handle.getHelpText( ) ); //$NON-NLS-1$		assertEquals( "help", handle.getHelpTextKey( ) ); //$NON-NLS-1$		// tests on the 2nd scalar parameter with the dynamic list.		handle = (ScalarParameterHandle) params.get( 1 );		// no default value to be false;		assertFalse( handle.isHidden( ) );		// the default value.		assertEquals( DesignChoiceConstants.PARAM_TYPE_STRING, handle				.getDataType( ) );		assertFalse( handle.isConcealValue( ) );		assertNull( handle.getDefaultValue( ) );		assertFalse( handle.allowNull( ) );		assertFalse( handle.allowBlank( ) );		assertNull( handle.getFormat( ) );		assertNull( handle.getControlType( ) );		assertEquals( DesignChoiceConstants.SCALAR_PARAM_ALIGN_AUTO, handle				.getAlignment( ) );		assertNull( handle.getHelpText( ) );		assertEquals( "actuate", handle.getPromptText( ) );//$NON-NLS-1$		handle.setPromptText( "actuate shanghai" );//$NON-NLS-1$		assertEquals( "actuate shanghai", handle.getPromptText( ) );//$NON-NLS-1$		assertEquals(				"ResourceKey.Parameter.PromptText", handle.getPromptTextID( ) );//$NON-NLS-1$		handle.setPromptTextID( "ResourceKey.Parameter.PromptTextValue" );//$NON-NLS-1$		assertEquals(				"ResourceKey.Parameter.PromptTextValue", handle.getPromptTextID( ) );//$NON-NLS-1$		// no list defined, should be null.		assertEquals( "dataset 1", handle.getDataSetName( ) ); //$NON-NLS-1$		DataSetHandle dataSet = handle.getDataSet( );		assertEquals( "dataset 1", dataSet.getName( ) ); //$NON-NLS-1$				assertEquals( "value column", handle.getValueExpr( ) ); //$NON-NLS-1$		assertEquals( "label column", handle.getLabelExpr( ) ); //$NON-NLS-1$		// tests on the 3nd scalar parameter with the selection list without		// choices.		handle = (ScalarParameterHandle) params.get( 2 );		assertFalse( handle.isMustMatch( ) );		assertFalse( handle.isFixedOrder( ) );		iter = handle.choiceIterator( );		assertNotNull( iter );		count = 0;		for ( ; iter.hasNext( ); iter.next( ) )			count++;		assertEquals( 0, count );		// tests on the 3nd scalar parameter with the selection list with 3		// choices.		handle = (ScalarParameterHandle) params.get( 3 );		assertFalse( handle.isMustMatch( ) );		assertTrue( handle.isFixedOrder( ) );		StructureHandle[] choices = new StructureHandle[3];		count = 0;		for ( iter = handle.choiceIterator( ); iter.hasNext( ); count++ )			choices[count] = (StructureHandle) ( iter.next( ) );		assertEquals( 3, count );		assertEquals( "option 1", //$NON-NLS-1$				choices[0].getMember( SelectionChoice.VALUE_MEMBER ).getValue( ) );		assertEquals( "option 1 label", //$NON-NLS-1$				choices[0].getMember( SelectionChoice.LABEL_MEMBER ).getValue( ) );		assertEquals( "key 1 for label 1", //$NON-NLS-1$				choices[0]						.getMember( SelectionChoice.LABEL_RESOURCE_KEY_MEMBER )						.getValue( ) );		assertEquals( "option 3", //$NON-NLS-1$				choices[2].getMember( SelectionChoice.VALUE_MEMBER ).getValue( ) );		assertNull( choices[2].getMember( SelectionChoice.LABEL_MEMBER )				.getValue( ) );		assertNull( choices[2].getMember(				SelectionChoice.LABEL_RESOURCE_KEY_MEMBER ).getValue( ) );	}