<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./spec.xsl" ?>

<spec title="Orchestration Diagram Elements Test Specification" version="1.4" author = "Andrey Yamkovoy, Victoria Zhukovskaya" author-email="kaktus@netbeans.org"  last-updated = "September 18, 2007">
    
    <!-- Process - OK -->    
    <caseblock name="Process element">
        <purpose>Checking Process element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Check context menu of Process element">
            <action>Select Process element on diagram.</action>
            <action>Call context menu of Process element.</action>
            <result>Context menu should contain only following items:'Add', 'Add From Palette', 'Go to Source', 'Properties'.</result>
        </usecase>
        <usecase name="Check 'Add' context menu of Process element">
            <action>Select Process element on diagram.</action>
            <action>Call 'Add' context menu of Process element.</action>
            <result>Context menu should contain only following items:'Variable...', 'Correlation Set...', 'Partner Link...', 'Event Handlers', 'Fault Handlers', 'WSDL Import...', 'Schema Import...'.</result>
        </usecase>
        <usecase name="Name Process using properties text field">
            <action>Select Process on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Process was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Process element using properties custom editor">
            <action>Select Process on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Process was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Process element using diagram">
            <action>Select Process on diagram.</action>
            <action>Double-click over Process name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Process was changed on diagram and in properties window.</result>
        </usecase>
    </caseblock>
    
    <!-- ParterLink - OK -->
    <caseblock name="Partner Link element">
        <purpose>Checking Partner Link element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Partner Link element">
            <action>Drag-n-drop Partner Link element from Orchestration palette to diagram.</action>
            <action>In appeared property editor dialog select wsdl and push 'Ok' button.</action>
            <result>Partner Link element should be created on diagram.</result>
            <result>Properties window should show Partner Link properies.</result>
        </usecase>
        <usecase name="Cancel creation of Partner Link element">
            <action>Drag-n-drop Partner Link element from Orchestration palette to diagram.</action>
            <action>In appeared property editor dialog push 'Cancel' button.</action>
            <result>Partner Link element should not be created on diagram.</result>
        </usecase>
        <usecase name="Name Partner Link element using properties text field">
            <action>Drag-n-drop Partner Link element from Orchestration palette to diagram.</action>
            <action>In appeared property editor dialog select wsdl and push 'Ok' button.</action>
            <action>Select created Partner Link element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Partner Link element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Partner Link element using properties custom editor">
            <action>Drag-n-drop Partner Link element from Orchestration palette to diagram.</action>
            <action>In appeared property editor dialog select wsdl and push 'Ok' button.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Partner Link element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Partner Link element using Property Editor">
            <action>Drag-n-drop Partner Link element from Orchestration palette to diagram.</action>
            <action>In appeared property editor dialog select wsdl and push 'Ok' button.</action>
            <action>Invoke PartnerLink Property Editor dialog.</action>
            <action>Change name in appeared Property Editor dialog and press OK button.</action>
            <result>Name of Partner Link element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Partner Link element using diagram">
            <action>Drag-n-drop Partner Link element from Orchestration palette to diagram.</action>
            <action>In appeared property editor dialog select wsdl and push 'Ok' button.</action>
            <action>Double-click over created Partner Link name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Partner Link element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Partner Link element">
            <action>Select Partner Link element on diagram.</action>
            <action>Call context menu of Partner Link element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Go to Source', 'Find Usages', 'Edit', 'Open', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Partner Link element by popup menu">
            <action>Select Partner Link element on diagram.</action>
            <action>Call context menu of Partner Link element and select item 'Delete'.</action>
            <result>Partner Link element should be removed.</result>
        </usecase>
        <usecase name="Remove Partner Link element by shortcut">
            <action>Select Partner Link element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Partner Link element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Partner Link element by cross button">
                <action>Select Partner Link element on diagram.</action>
                <action>Press appeared red cross button near Partner Link element on diagram.</action>
                <result>Partner Link element should be removed.</result>
        </usecase>
-->        
        <usecase name="Configure Partner Link">
            <action>Select Partner Link element on diagram.</action>
            <action>Call Property Editor dialog for Partner Link element.</action>
            <action>Select 'WSDL File' field for Partner Link.</action>
            <action>Select 'Partner Link Type' field for Partner Link.</action>
            <action>Select 'My Role' and/or 'Partner Role' field for Partner Link.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Operations should appears in partner link according to selected roles.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
    </caseblock>
    
    <!-- Invoke - OK -->
    <caseblock name="Invoke element">
        <purpose>Checking Invoke element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened. Project should has Correlation Set.</setup>
        <usecase name="Create Invoke element">
            <action>Drag-n-drop Invoke element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Invoke element should be created on diagram.</result>
            <result>Properties window should show Invoke properies.</result>
        </usecase>
        <usecase name="Name Invoke element using properties text field">
            <action>Drag-n-drop Invoke element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Invoke element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Invoke element using properties custom editor">
            <action>Drag-n-drop Invoke element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Invoke element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Invoke element using Property Editor">
            <action>Drag-n-drop Invoke element from Orchestration palette to diagram.</action>
            <action>Call Property Editor for Invoke element.</action>
            <action>Change name in appeared Property Editor and press OK button.</action>
            <result>Name of Invoke element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Invoke element using diagram">
            <action>Drag-n-drop Invoke element from Orchestration palette to diagram.</action>
            <action>Double-click over created Invoke name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Invoke element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Invoke element">
            <action>Select Invoke element on diagram.</action>
            <action>Call context menu of Invoke element.</action>
            <result>Context menu should contain only following items: 'Go To Source', 'Wrap With', 'Move Up', 'Move Down', 'Edit', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Invoke element by popup menu">
            <action>Select Invoke element on diagram.</action>
            <action>Call context menu of Invoke element and select item 'Delete'.</action>
            <result>Invoke element should be removed.</result>
        </usecase>
        <usecase name="Remove Invoke element by shortcut">
            <action>Select Invoke element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Invoke element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Invoke element by cross button">
                <action>Select Invoke element on diagram.</action>
                <action>Press appeared red cross button near Invoke element on diagram.</action>
                <result>Invoke element should be removed.</result>
        </usecase>
-->        
        <usecase name="Add correlation set to Invoke">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Switch to 'Correlations' TAB and press 'Add' button.</action>
            <action>In appeared dialog select some correlation set in tree and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be added to Invoke in the document source.</result>
        </usecase>
        <usecase name="Edit correlation set of Invoke">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Edit' button.</action>
            <action>In appeared dialog change correlation set and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be changed in the document source.</result>
        </usecase>
        <usecase name="Delete correlation set from Invoke">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Remove' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be deleted from Invoke in the document source.</result>
        </usecase>
        <usecase name="Configure Invoke with creating variables">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Create ...' button for input variable and in appeared dialog push Ok.</action>
            <action>Push 'Create ...' button for output variable and in appeared dialog push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appears between Invoke and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Configure Invoke with browsing variables">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for input variable and in appeared dialog select some variable and push Ok.</action>
            <action>Push 'Browse ...' button for output variable and in appeared dialog select some variable and push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appears between Invoke and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Add, edit, and delete variable from Input Variable Chooser dialog for Invoke">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for input variable.</action>
            <action>Select process node and create some variable using 'Add ...' button.</action>
            <action>Select some variable and edit it using 'Edit ...' button.</action>
            <action>Select some variable and delete it using 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Notice that variable can be added, edited and deleted from Input Variable Chooser dialog.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Add, edit and delete variable from Output Variable Chooser dialog for Invoke">
            <action>Select Invoke element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Invoke element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for output variable.</action>
            <action>Select process node and create some variable using 'Add ...' button.</action>
            <action>Select some variable and edit it using 'Edit ...' button.</action>
            <action>Select some variable and delete it using 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Notice that variable can be added, edited and deleted from Output Variable Chooser dialog.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
    </caseblock>
    
    <!-- Receive - OK -->
    <caseblock name="Receive element">
        <purpose>Checking Receive element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened. Project should has Correlation Set.</setup>
        <usecase name="Create Receive element">
            <action>Drag-n-drop Receive element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Receive element should be created on diagram.</result>
            <result>Properties window should show Receive properies.</result>
        </usecase>
        <usecase name="Name Receive element using properties text field">
            <action>Drag-n-drop Receive element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Receive element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Receive element using properties custom editor">
            <action>Drag-n-drop Receive element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Receive element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Receive element using Property Editor">
            <action>Drag-n-drop Receive element from Orchestration palette to diagram.</action>
            <action>Call Property Editor for Receive element.</action>
            <action>Change name in appeared Property Editor and press OK button.</action>
            <result>Name of Receive element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Receive element using diagram">
            <action>Drag-n-drop Receive element from Orchestration palette to diagram.</action>
            <action>Double-click over created Receive name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Receive element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Receive element">
            <action>Select Receive element on diagram.</action>
            <action>Call context menu of Receive element.</action>
            <result>Context menu should contain only following items: 'Scroll To Partner Link', 'Go to Source', 'Wrap With', 'Edit', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Receive element by popup menu">
            <action>Select Receive element on diagram.</action>
            <action>Call context menu of Receive element and select item 'Delete'.</action>
            <result>Receive element should be removed.</result>
        </usecase>
        <usecase name="Remove Receive element by shortcut">
            <action>Select Receive element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Receive element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Receive element by cross button">
                <action>Select Receive element on diagram.</action>
                <action>Press appeared red cross button near Receive element on diagram.</action>
                <result>Receive element should be removed.</result>
        </usecase>
-->        
        <usecase name="Add correlation set to Receive">
            <action>Select Receive element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Receive element.</action>
            <action>Switch to 'Correlations' TAB and press 'Add' button.</action>
            <action>In appeared dialog select some correlation set in tree and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be added to Receive.</result>
        </usecase>
        <usecase name="Edit correlation set of Receive">
            <action>Select Receive element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Receive element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Edit' button.</action>
            <action>In appeared dialog change correlation set and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be changed.</result>
        </usecase>
        <usecase name="Delete correlation set from Receive">
            <action>Select Receive element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Receive element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be deleted from Receive.</result>
        </usecase>
        <usecase name="Configure Receive with creating variable">
            <action>Select Receive element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Receive element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Create ...' button for input variable and in appeared dialog push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appears between Receive and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Configure Receive with browsing variable">
            <action>Select Receive element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Receive element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for input variable and in appeared dialog select some variable and push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appears between Receive and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Add, edit and delete variable from Input Variable Chooser dialog for Receive">
            <action>Select Receive element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Receive element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for input variable.</action>
            <action>Select process node and create some variable using 'Add ...' button.</action>
            <action>Select some variable and edit it using 'Edit ...' button.</action>
            <action>Select some variable and delete it using 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Notice that variable can be added, edited and deleted from Input Variable Chooser dialog.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
    </caseblock>
    
    <!-- Reply - OK -->
    <caseblock name="Reply element">
        <purpose>Checking Reply element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Reply element">
            <action>Drag-n-drop Reply element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Reply element should be created on diagram.</result>
            <result>Properties window should show Reply properies.</result>
        </usecase>
        <usecase name="Name Reply element using properties text field">
            <action>Drag-n-drop Reply element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Reply element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Reply element using properties custom editor">
            <action>Drag-n-drop Reply element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Reply element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Reply element using Property Editor">
            <action>Drag-n-drop Reply element from Orchestration palette to diagram.</action>
            <action>Call Property Editor for Reply element.</action>
            <action>Change name in appeared Property Editor and press OK button.</action>
            <result>Name of Reply element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Reply element using diagram">
            <action>Drag-n-drop Reply element from Orchestration palette to diagram.</action>
            <action>Double-click over created Reply name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Reply element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Reply element">
            <action>Select Reply element on diagram.</action>
            <action>Call context menu of Reply element.</action>
            <result>ontext menu should contain only following items: 'Scroll To Partner Link', 'Go to Source', 'Wrap With', 'Move Up', 'Move Down', 'Edit', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Reply element by popup menu">
            <action>Select Reply element on diagram.</action>
            <action>Call context menu of Reply element and select item 'Delete'.</action>
            <result>Reply element should be removed.</result>
        </usecase>
        <usecase name="Remove Reply element by shortcut">
            <action>Select Reply element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Reply element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Reply element by cross button">
                <action>Select Reply element on diagram.</action>
                <action>Press appeared red cross button near Reply element on diagram.</action>
                <result>Reply element should be removed.</result>
        </usecase>
-->        
        <usecase name="Add correlation set to Reply">
            <action>Select Reply element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Reply element.</action>
            <action>Switch to 'Correlations' TAB and press 'Add' button.</action>
            <action>In appeared dialog select some correlation set in tree and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be added to Reply.</result>
        </usecase>
        <usecase name="Edit correlation set of Reply">
            <action>Select Reply element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Reply element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Edit' button.</action>
            <action>In appeared dialog change correlation set and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be changed.</result>
        </usecase>
        <usecase name="Delete correlation set from Reply">
            <action>Select Reply element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Reply element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be deleted from Reply.</result>
        </usecase>
        <usecase name="Configure Reply with creating variable">
            <action>Select Reply element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Reply element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Create ...' button for output variable and in appeared dialog push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appears between Reply and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Configure Reply with browsing variable">
            <action>Select Reply element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Reply element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for output variable and in appeared dialog select some variable and push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appears between Reply and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Add, edit and delete variable from Output Variable Chooser dialog for Reply">
            <action>Select Reply element on diagram.</action>
            <action>Call 'Edit' from popupmenu for Reply element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for output variable.</action>
            <action>Select process node and create some variable using 'Add ...' button.</action>
            <action>Select some variable and edit it using 'Edit ...' button.</action>
            <action>Select some variable and delete it using 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Notice that variable can be added, edited and deleted from Output Variable Chooser dialog.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
    </caseblock>
    
    <!-- Empty - OK -->
    <caseblock name="Empty element">
        <purpose>Checking Empty element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Empty element">
            <action>Drag-n-drop Empty element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Empty element should be created on diagram.</result>
            <result>Properties window should show Empty properies.</result>
        </usecase>
        <usecase name="Name Empty element using properties text field">
            <action>Drag-n-drop Empty element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Empty element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Empty element using properties custom editor">
            <action>Drag-n-drop Empty element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Empty element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Empty element using diagram">
            <action>Drag-n-drop Empty element from Orchestration palette to diagram.</action>
            <action>Double-click over created Empty name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Empty element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Empty element">
            <action>Select Empty element on diagram.</action>
            <action>Call context menu of Empty element.</action>
            <result>Context menu should contain only following items: 'Go to Source', 'Wrap With', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Empty element by popup menu">
            <action>Select Empty element on diagram.</action>
            <action>Call context menu of Empty element and select item 'Delete'.</action>
            <result>Empty element should be removed.</result>
        </usecase>
        <usecase name="Remove Empty element by shortcut">
            <action>Select Empty element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Empty element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Empty element by cross button">
                <action>Select Empty element on diagram.</action>
                <action>Press appeared red cross button near Empty element on diagram.</action>
                <result>Empty element should be removed.</result>
        </usecase>
        -->        
    </caseblock>
    
    <!-- Assign - OK -->
    <caseblock name="Assign element">
        <purpose>Checking Assign element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Assign element">
            <action>Drag-n-drop Assign element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Assign element should be created on diagram.</result>
            <result>Properties window should show Assign properies.</result>
        </usecase>
        <usecase name="Name Assign element using properties text field">
            <action>Drag-n-drop Assign element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Assign element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Assign element using properties custom editor">
            <action>Drag-n-drop Assign element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Assign element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Assign element using diagram">
            <action>Drag-n-drop Assign element from Orchestration palette to diagram.</action>
            <action>Double-click over created Assign name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Assign element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Assign element">
            <action>Select Assign element on diagram.</action>
            <action>Call context menu of Assign element.</action>
            <result>Context menu should contain only following items: 'Go to Source', 'Wrap With', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Assign element by popup menu">
            <action>Select Assign element on diagram.</action>
            <action>Call context menu of Assign element and select item 'Delete'.</action>
            <result>Assign element should be removed.</result>
        </usecase>
        <usecase name="Remove Assign element by shortcut">
            <action>Select Assign element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Assign element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Assign element by cross button">
                <action>Select Assign element on diagram.</action>
                <action>Press appeared red cross button near Assign element on diagram.</action>
                <result>Assign element should be removed.</result>
        </usecase>
        -->        
    </caseblock>
    
    <!-- Wait - OK -->
    <caseblock name="Wait element">
        <purpose>Checking Wait element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Wait element">
            <action>Drag-n-drop Wait element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Wait element should be created on diagram.</result>
            <result>Properties window should show Wait properies.</result>
        </usecase>
        <usecase name="Name Wait element using properties text field">
            <action>Drag-n-drop Wait element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Wait element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Wait element using properties custom editor">
            <action>Drag-n-drop Wait element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Wait element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Wait element using Property Editor">
            <action>Drag-n-drop Wait element from Orchestration palette to diagram.</action>
            <action>Call Property Editor for Wait element.</action>
            <action>Change name in appeared Property Editor and press OK button.</action>
            <result>Name of Wait element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Wait element using diagram">
            <action>Drag-n-drop Wait element from Orchestration palette to diagram.</action>
            <action>Double-click over created Wait name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Wait element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Wait element">
            <action>Select Wait element on diagram.</action>
            <action>Call context menu of Wait element.</action>
            <result>Context menu should contain only following items: 'Go to Source', 'Wrap With', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Wait element by popup menu">
            <action>Select Wait element on diagram.</action>
            <action>Call context menu of Wait element and select item 'Delete'.</action>
            <result>Wait element should be removed.</result>
        </usecase>
        <usecase name="Remove Wait element by shortcut">
            <action>Select Wait element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Wait element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Wait element by cross button">
                <action>Select Wait element on diagram.</action>
                <action>Press appeared red cross button near Wait element on diagram.</action>
                <result>Wait element should be removed.</result>
        </usecase>
-->        
        <usecase name="Set Wait condition - for time">
            <action>Select Wait element on diagram.</action>
            <action>Select 'For' value for 'Type' combobox in properties window.</action>
            <action>Press '...' for 'For' property in properties window.</action>
            <action>In appeared dialog fill some fields and press 'OK' button.</action>
            <result>Property 'For' in properties window should have entered value.</result>
        </usecase>
        <usecase name="Set Wait condition - until time">
            <action>Select Wait element on diagram.</action>
            <action>Select 'Until' value for 'Type' combobox in properties window.</action>
            <action>Press '...' for 'Until' property in properties window.</action>
            <action>In appeared dialog fill some fields and press 'OK' button.</action>
            <result>Property 'Until' in properties window should have entered value.</result>
        </usecase>
    </caseblock>
    
    <!-- Exit - OK -->
    <caseblock name="Exit element">
        <purpose>Checking Exit element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Exit element">
            <action>Drag-n-drop Exit element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Exit element should be created on diagram.</result>
            <result>Properties window should show Exit properies.</result>
        </usecase>
        <usecase name="Name Exit element using properties text field">
            <action>Drag-n-drop Exit element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Exit element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Exit element using properties custom editor">
            <action>Drag-n-drop Exit element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Exit element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Exit element using diagram">
            <action>Drag-n-drop Exit element from Orchestration palette to diagram.</action>
            <action>Double-click over created Exit name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Exit element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Exit element">
            <action>Select Exit element on diagram.</action>
            <action>Call context menu of Exit element.</action>
            <result>Context menu should contain only following items: 'Add From Palette', 'Wrap With', 'Go To Source', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Exit element by popup menu">
            <action>Select Exit element on diagram.</action>
            <action>Call context menu of Exit element and select item 'Delete'.</action>
            <result>Exit element should be removed.</result>
        </usecase>
        <usecase name="Remove Exit element by shortcut">
            <action>Select Exit element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Exit element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Exit element by cross button">
                <action>Select Exit element on diagram.</action>
                <action>Press appeared red cross button near Exit element on diagram.</action>
                <result>Exit element should be removed.</result>
        </usecase>
        -->        
    </caseblock>
    
    <!-- Throw - OK -->
    <caseblock name="Throw element">
        <purpose>Checking Throw element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Throw element">
            <action>Drag-n-drop Throw element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Throw element should be created on diagram.</result>
            <result>Properties window should show Throw properies.</result>
        </usecase>
        <usecase name="Name Throw element using properties text field">
            <action>Drag-n-drop Throw element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Throw element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Throw element using properties custom editor">
            <action>Drag-n-drop Throw element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Throw element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Throw element using diagram">
            <action>Drag-n-drop Throw element from Orchestration palette to diagram.</action>
            <action>Double-click over created Throw name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Throw element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Throw element">
            <action>Select Throw element on diagram.</action>
            <action>Call context menu of Throw element.</action>
            <result>Context menu should contain only following items: 'Add From Palette', 'Wrap With', 'Go To Source', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Throw element by popup menu">
            <action>Select Throw element on diagram.</action>
            <action>Call context menu of Throw element and select item 'Delete'.</action>
            <result>Throw element should be removed.</result>
        </usecase>
        <usecase name="Remove Throw element by shortcut">
            <action>Select Throw element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Throw element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Throw element by cross button">
                <action>Select Throw element on diagram.</action>
                <action>Press appeared red cross button near Throw element on diagram.</action>
                <result>Throw element should be removed.</result>
        </usecase>
-->        
        <usecase name="Configure Throw element">
            <action>Select Throw element on diagram.</action>
            <action>Press '...' button for property 'Fault Name'.</action>
            <action>In appeared dialog set values for requested properties and press 'OK' button.</action>
            <action>Press '...' button for property 'Fault Variable'.</action>
            <action>In appeared dialog select variable and press 'OK' button.</action>
            <result>Properties of Throw should be changed in properties window.</result>
        </usecase>
    </caseblock>
    
    <!-- Flow - OK -->
    <caseblock name="Flow element">
        <purpose>Checking Flow element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Flow element">
            <action>Drag-n-drop Flow element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Flow element should be created on diagram.</result>
            <result>Properties window should show Flow properies.</result>
        </usecase>
        <usecase name="Name Flow element using properties text field">
            <action>Drag-n-drop Flow element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Flow element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Flow element using properties custom editor">
            <action>Drag-n-drop Flow element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Flow element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Flow element using diagram">
            <action>Drag-n-drop Flow element from Orchestration palette to diagram.</action>
            <action>Double-click over created Flow name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Flow element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Flow element">
            <action>Select Flow element on diagram.</action>
            <action>Call context menu of Flow element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Go to Source', 'Add From Palette', 'Wrap With', 'Change Order...', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Flow element by popup menu">
            <action>Select Flow element on diagram.</action>
            <action>Call context menu of Flow element and select item 'Delete'.</action>
            <result>Flow element should be removed.</result>
        </usecase>
        <usecase name="Remove Flow element by shortcut">
            <action>Select Flow element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Flow element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Flow element by cross button">
                <action>Select Flow element on diagram.</action>
                <action>Press appeared red cross button near Flow element on diagram.</action>
                <result>Flow element should be removed.</result>
        </usecase>
-->        
        <usecase name="Add a sequence to Flow element">
            <action>Drag-n-drop Flow element from Orchestration palette to diagram.</action>
            <action>Add some element to Flow.</action>
            <action>Drag some element over the Flow.</action>
            <action>Drop the element in appeared (while dragging) sequence in the Flow.</action>
            <result>The sequence was created on diagram with dropped elements inside.</result>
        </usecase>
        
        <!-- Not actual
        <usecase name="Remove elements from the sequence within Flow element">
            <action>Drag-n-drop Flow element from Orchestration palette to diagram.</action>
            <action>Add some element to Flow.</action>
            <action>Draging some element over the Flow.</action>
            <action>Drop element in appeared (while dragging) 2-nd flow of the Flow.</action>
            <action>Remove this element from Flow.</action>
            <result>There is only one empty flow in Flow.</result>
        </usecase>
        -->
    </caseblock>
    
    <!-- Pick - OK -->
    <caseblock name="Pick element">
        <purpose>Checking Pick element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened. Project should has Correlation Set.</setup>
        <usecase name="Create Pick element">
            <action>Drag-n-drop Pick element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Pick element should be created on diagram.</result>
            <result>Properties window should show Pick properies.</result>
        </usecase>
        <usecase name="Name Pick element using properties text field">
            <action>Drag-n-drop Pick element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Pick element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Pick element using properties custom editor">
            <action>Drag-n-drop Pick element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Pick element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Pick element using diagram">
            <action>Drag-n-drop Pick element from Orchestration palette to diagram.</action>
            <action>Double-click over created Pick name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Pick element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Pick element">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of Pick element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add', 'Wrap With', 'Go to Source', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Check 'Add' context menu of Pick element">
            <action>Select Pick element on diagram.</action>
            <action>Call 'Add' context menu of Pick element.</action>
            <result>Context menu should contain only following items: 'On Message', 'On Alarm'.</result>
        </usecase>        
        <usecase name="Remove Pick element by popup menu">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of Pick element and select item 'Delete'.</action>
            <result>Pick element should be removed.</result>
        </usecase>
        <usecase name="Remove Pick element by shortcut">
            <action>Select Pick element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Pick element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Pick element by cross button">
                <action>Select Pick element on diagram.</action>
                <action>Press appeared red cross button near Pick element on diagram.</action>
                <result>Pick element should be removed.</result>
        </usecase>
        -->
        <usecase name="Add onMessage to Pick element">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of Pick element and select item 'Add' > 'On Message'.</action>
            <result>One more onMessage should be added to Pick element.</result>
        </usecase>
        <usecase name="Check context menu of onMessage within Pick element">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of onMessage in Pick element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add From Palette', 'Go to Source', 'Edit', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove onMessage from Pick element by popup menu">
            <action>Select Pick element on diagram with more than 1 onMessage.</action>
            <action>Call context menu of some onMessage  in Pick element and select item 'Delete'.</action>
            <result>onMessage from Pick element should be removed.</result>
        </usecase>
        <usecase name="Remove onMessage from Pick element by shortcut">
            <action>Select Pick element on diagram with onMessage.</action>
            <action>Select some onMessage in Pick and press 'Delete' button.</action>
            <result>onMessage from Pick element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove onMessage from Pick element by cross button">
                <action>Select Pick element on diagram with onMessage branch.</action>
                <action>Press appeared red cross button near onMessage branch of Pick element on diagram.</action>
                <result>onMessage branch from Pick element should be removed.</result>
        </usecase>
-->        
        <usecase name="Add correlation set to onMessage  of Pick">
            <action>Select onMessage  of Pick element on diagram.</action>
            <action>Call 'Edit' from context menu for onMessage element.</action>
            <action>Switch to 'Correlations' TAB and press 'Add' button.</action>
            <action>In appeared dialog select some correlation set in tree and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be added to onMessage.</result>
        </usecase>
        <usecase name="Edit correlation set of onMessage of Pick">
            <action>Select onMessage branch of Pick element on diagram.</action>
            <action>Call 'Edit' from context menu for onMessage element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Edit' button.</action>
            <action>In appeared dialog change correlation set and press 'Ok' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be changed.</result>
        </usecase>
        <usecase name="Delete correlation set from onMessage of Pick">
            <action>Select onMessage branch of Pick element on diagram.</action>
            <action>Call 'Edit' from context menu for onMessage element.</action>
            <action>Switch to 'Correlations' TAB, select some correlation set in table and press 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Correlation set should be deleted from onMessage.</result>
        </usecase>
        <usecase name="Configure onMessage of Pick with creating variable">
            <action>Select onMessage branch of Pick element on diagram.</action>
            <action>Call 'Edit' from context menu for onMessage element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Create ...' button for input variable and in appeared dialog push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appear between onMessage and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Configure onMessage branch of Pick with browsing variable">
            <action>Select onMessage branch of Pick element on diagram.</action>
            <action>Call 'Edit' from context menu for onMessage element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for input variable and in appeared dialog select some variable and push Ok.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Link should appear between onMessage and corresponding operation in Partner Link.</result>
            <result>Properties window should have values for all entered properties.</result>
        </usecase>
        <usecase name="Add, edit, and delete variable from 'Input Variable Chooser' dialog for onMessage branch of Pick">
            <action>Select onMessage branch of Pick element on diagram.</action>
            <action>Call 'Edit' from context menu for onMessage element.</action>
            <action>Select some partner link and operation.</action>
            <action>Push 'Browse ...' button for input variable.</action>
            <action>Select 'Variables' node and create some variable using 'Add ...' button.</action>
            <action>Select some variable and edit it using 'Edit ...' button.</action>
            <action>Select some variable and delete it using 'Delete' button.</action>
            <action>Press 'Ok' button of propeties editor dialog.</action>
            <result>Notice that variable can be added, edited, and deleted from Input Variable Chooser dialog.</result>
            <result>Properties window should have values for following properties: 'Partner Link', 'Port Type', 'Operation'.</result>
        </usecase>
        <usecase name="Add onAlarm to Pick element">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of Pick element and select item 'Add' > 'On Alarm'.</action>
            <result>A new onAlarm should be added to Pick element.</result>
        </usecase>
        <usecase name="Check context menu of onAlarm in Pick element">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of onAlarm in Pick element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add From Palette', 'Go to Source', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove onAlarm from Pick element by popup menu">
            <action>Select Pick element on diagram.</action>
            <action>Call context menu of some onAlarm branch in Pick element and select item 'Delete'.</action>
            <result>onAlarm branch from Switch element should be removed.</result>
        </usecase>
        <usecase name="Remove onAlarm from Pick element by shortcut">
            <action>Select Pick element on diagram.</action>
            <action>Select some onAlarm in Pick and press 'Delete' button.</action>
            <result>onAlarm from Pick element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove onAlarm from Pick element by cross button">
                <action>Select Pick element on diagram with onAlarm branch.</action>
                <action>Press appeared red cross button near onAlarm branch of Pick element on diagram.</action>
                <result>onAlarm branch from Pick element should be removed.</result>
        </usecase>
-->        
        <usecase name="Set onAlarm wait condition - for time">
            <action>Select Pick element on diagram.</action>
            <action>Add onAlarm branch to Pick and select it on diagram.</action>
            <action>Select 'For' value for 'Type' combobox in properties window.</action>
            <action>Press '...' for 'For' property in properties window.</action>
            <action>In appeared dialog fill some fields and press 'OK' button.</action>
            <result>Property 'For' in properties window should have entered value.</result>
        </usecase>
        <usecase name="Set onAlarm wait condition - until time">
            <action>Select Pick element on diagram.</action>
            <action>Add onAlarm branch to Pick and select it on diagram.</action>
            <action>Select 'Until' value for 'Type' combobox in properties window.</action>
            <action>Press '...' for 'Until' property in properties window.</action>
            <action>In appeared dialog fill some fields and press 'OK' button.</action>
            <result>Property 'Until' in properties window should have entered value.</result>
        </usecase>
    </caseblock>
    
    <!-- Sequence - OK -->
    <caseblock name="Sequence element">
        <purpose>Checking Sequence element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Sequence element">
            <action>Drag-n-drop Sequence element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Sequence element should be created on diagram.</result>
            <result>Properties window should show Sequence properies.</result>
        </usecase>
        <usecase name="Name Sequence element using properties text field">
            <action>Drag-n-drop Sequence element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Sequence element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Sequence element using properties custom editor">
            <action>Drag-n-drop Sequence element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Sequence element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Sequence element using diagram">
            <action>Drag-n-drop Sequence element from Orchestration palette to diagram.</action>
            <action>Double-click over created Sequence name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Sequence element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Sequence element">
            <action>Select Sequence element on diagram.</action>
            <action>Call context menu of Sequence element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add From Palette', 'Wrap With', 'Change Order...', 'Go to Source', 'MoveUp', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Remove Sequence element by popup menu">
            <action>Select Sequence element on diagram.</action>
            <action>Call context menu of Sequence element and select item 'Delete'.</action>
            <result>Sequence element should be removed.</result>
        </usecase>
        <usecase name="Remove Sequence element by shortcut">
            <action>Select Sequence element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Sequence element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Sequence element by cross button">
                <action>Select Sequence element on diagram.</action>
                <action>Press appeared red cross button near Sequence element on diagram.</action>
                <result>Sequence element should be removed.</result>
        </usecase>
        -->        
    </caseblock>
    
    <!-- Scope - OK -->
    <caseblock name="Scope element"><!-- more testcases should be added -->
        <purpose>Checking Scope element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create Scope element">
            <action>Drag-n-drop Scope element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>Scope element should be created on diagram.</result>
            <result>Properties window should show Scope properies.</result>
        </usecase>
        <usecase name="Name Scope element using properties text field">
            <action>Drag-n-drop Scope element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of Scope element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Scope element using properties custom editor">
            <action>Drag-n-drop Scope element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of Scope element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Scope element using Property Editor">
            <action>Drag-n-drop Scope element from Orchestration palette to diagram.</action>
            <action>Call Property Editor for Scope element.</action>
            <action>Change name in appeared Property Editor and press OK button.</action>
            <result>Name of Scope element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name Scope element using diagram">
            <action>Drag-n-drop Scope element from Orchestration palette to diagram.</action>
            <action>Double-click over created Scope name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of Scope element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of Scope element">
            <action>Select Scope element on diagram.</action>
            <action>Call context menu of Scope element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add', 'Add FromPalette', 'Wrap With', 'Go to Source', 'Move Up', 'MoveDown', 'Toggle Breakpoint', 'Delete', 'Properties'.</result>
        </usecase>
        <usecase name="Check 'Add' context menu of Scope element">
            <action>Select Scope element on diagram.</action>
            <action>Call 'Add' context menu of Scope element.</action>
            <result>Context menu should contain only following items: 'Variable...', 'Event Handlers', 'Fault Handlers'.</result>
        </usecase>
        
        <usecase name="Remove Scope element by popup menu">
            <action>Select Scope element on diagram.</action>
            <action>Call context menu of Scope element and select item 'Delete'.</action>
            <result>Scope element should be removed.</result>
        </usecase>
        <usecase name="Remove Scope element by shortcut">
            <action>Select Scope element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>Scope element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove Scope element by cross button">
                <action>Select Scope element on diagram.</action>
                <action>Press appeared red cross button near Scope element on diagram.</action>
                <result>Scope element should be removed.</result>
        </usecase>
        -->        
    </caseblock>
    
    <!-- If - OK -->
    <caseblock name="If element">
        <purpose>Checking If element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create If element">
            <action>Drag-n-drop If element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>If element should be created on diagram.</result>
            <result>Properties window should show If properies.</result>
        </usecase>
        <usecase name="Name If element using properties text field">
            <action>Drag-n-drop If element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of If element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name If element using properties custom editor">
            <action>Drag-n-drop If element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of If element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name If element using diagram">
            <action>Drag-n-drop If element from Orchestration palette to diagram.</action>
            <action>Double-click over created If name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of If element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of If element">
            <action>Select If element on diagram.</action>
            <action>Call context menu of If element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add Else If', 'Add Else', 'Add From Palette', 'Wrap With', 'Go To Source', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove If element by popup menu">
            <action>Select If element on diagram.</action>
            <action>Call context menu of If element and select item 'Delete'.</action>
            <result>If element should be removed.</result>
        </usecase>
        <usecase name="Remove If element by shortcut">
            <action>Select If element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>If element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove If element by cross button">
                <action>Select If element on diagram.</action>
                <action>Press appeared red cross button near If element on diagram.</action>
                <result>If element should be removed.</result>
        </usecase>
-->        
        <usecase name="Set condition of If element">
            <action>Select If element on diagram.</action>
            <action>Set condition of If element.</action>
            <result>If element property 'Condition' should have correct value in properies window.</result>
        </usecase>
        <usecase name="Add ElseIf to If element">
            <action>Select If element on diagram.</action>
            <action>Call context menu of If element and select item 'Add Else If'.</action>
            <result>One more ElseIf should be added to If element.</result>
        </usecase>
        <usecase name="Check context menu of ElseIf in If element">
            <action>Select If element on diagram.</action>
            <action>Call context menu of ElseIf in If element.</action>
            <result>Context menu should contain only following items: 'Collapse', 'Add From Palette', 'Go to Source', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Set condition of ElseIf in If element">
            <action>Select ElseIf in If element on diagram.</action>
            <action>Set condition of ElseIf element.</action>
            <result>ElseIf property 'Condition' should have correct value in properies window.</result>
        </usecase>
        <usecase name="Remove ElseIf from If element by popup menu">
            <action>Select If element on diagram with ElseIf.</action>
            <action>Call context menu of some ElseIf in If element and select item 'Delete'.</action>
            <result>ElseIf from If element should be removed.</result>
        </usecase>
        <usecase name="Remove ElseIf from If element by shortcut">
            <action>Select If element on diagram with ElseIf.</action>
            <action>Select some ElseIf in If and press 'Delete' button.</action>
            <result>ElseIf from If element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove ElseIf from If element by cross button">
                <action>Select If element on diagram with ElseIf.</action>
                <action>Select some ElseIf in If and press appeared red cross button near ElseIf element on diagram.</action>
                <result>ElseIf from If element should be removed.</result>
        </usecase>
        -->        
    </caseblock>
    
    <!-- While - OK -->
    <caseblock name="While element">
        <purpose>Checking While element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create While element">
            <action>Drag-n-drop While element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>While element should be created on diagram.</result>
            <result>Properties window should show While properies.</result>
        </usecase>
        <usecase name="Name While element using properties text field">
            <action>Drag-n-drop While element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of While element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name While element using properties custom editor">
            <action>Drag-n-drop While element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of While element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name While element using diagram">
            <action>Drag-n-drop While element from Orchestration palette to diagram.</action>
            <action>Double-click over created While name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of While element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of While element">
            <action>Select While element on diagram.</action>
            <action>Call context menu of While element.</action>
            <result>Context menu should contain only following items: Context menu should contain only following items: 'Collapse', 'Go to Source', 'Add From Palette', 'Wrap With', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove While element by popup menu">
            <action>Select While element on diagram.</action>
            <action>Call context menu of While element and select item 'Delete'.</action>
            <result>While element should be removed.</result>
        </usecase>
        <usecase name="Remove While element by shortcut">
            <action>Select While element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>While element should be removed.</result>
        </usecase>
        <!--        
        <usecase name="Remove While element by cross button">
                <action>Select While element on diagram.</action>
                <action>Press appeared red cross button near While element on diagram.</action>
                <result>While element should be removed.</result>
        </usecase>
-->        
        <usecase name="Set condition for While element">
            <action>Select While element on diagram.</action>
            <action>Set condition for While element.</action>
            <result>Property 'Condition' should have entered value in properties window.</result>
        </usecase>
    </caseblock>

    <caseblock name="ForEach element">
        <purpose>Checking ForEach element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create ForEach element">
            <action>Drag-n-drop ForEach element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>ForEach element should be created on diagram.</result>
            <result>Properties window should show ForEach properies.</result>
        </usecase>
        <usecase name="Name ForEach element using properties text field">
            <action>Drag-n-drop ForEach element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of ForEach element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name ForEach element using properties custom editor">
            <action>Drag-n-drop ForEach element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of ForEach element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name ForEach element using diagram">
            <action>Drag-n-drop ForEach element from Orchestration palette to diagram.</action>
            <action>Double-click over created ForEach name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of ForEach element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of ForEach element">
            <action>Select ForEach element on diagram.</action>
            <action>Call context menu of ForEach element.</action>
            <result>Context menu should contain only following items: Context menu should contain only following items: 'Collapse', 'Go to Source', 'Add From Palette', 'Wrap With', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove ForEach element by popup menu">
            <action>Select ForEach element on diagram.</action>
            <action>Call context menu of ForEach element and select item 'Delete'.</action>
            <result>ForEach element should be removed.</result>
        </usecase>
        <usecase name="Remove ForEach element by shortcut">
            <action>Select ForEach element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>ForEach element should be removed.</result>
        </usecase>
        <usecase name="Configure ForEach element">
            <action>Select ForEach element on diagram.</action>
            <action>Set Counter Variable Name, Start Counter Value, Final Counter Value, Completion Condition, and Count Completed Branches Only for ForEach element.</action>
            <result>The properties should have entered the values in both Properties window and Source View.</result>
        </usecase>
    </caseblock>
    

    <caseblock name="RepeatUntil element">
        <purpose>Checking RepeatUntil element.</purpose>
        <setup>Orchestration project should be created. Multi-view editor should be opened in design mode. Property window should be opened.</setup>
        <usecase name="Create RepeatUntil element">
            <action>Drag-n-drop RepeatUntil element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <result>RepeatUntil element should be created on diagram.</result>
            <result>Properties window should show RepeatUntil properies.</result>
        </usecase>
        <usecase name="Name RepeatUntil element using properties text field">
            <action>Drag-n-drop RepeatUntil element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Change property 'Name' in properties window.</action>
            <result>Name of RepeatUntil element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name RepeatUntil element using properties custom editor">
            <action>Drag-n-drop RepeatUntil element from Orchestration palette to diagram.</action>
            <action>Select created element on diagram.</action>
            <action>Select property 'Name' in properties window and push '...' button.</action>
            <action>Change value in appeared custom editor.</action>
            <result>Name of RepeatUntil element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Name RepeatUntil element using diagram">
            <action>Drag-n-drop RepeatUntil element from Orchestration palette to diagram.</action>
            <action>Double-click over created RepeatUntil name on diagram.</action>
            <action>Change name in appeared editbox and press Enter.</action>
            <result>Name of RepeatUntil element was changed on diagram and in properties window.</result>
        </usecase>
        <usecase name="Check context menu of RepeatUntil element">
            <action>Select RepeatUntil element on diagram.</action>
            <action>Call context menu of RepeatUntil element.</action>
            <result>Context menu should contain only following items: Context menu should contain only following items: 'Collapse', 'Go to Source', 'Add From Palette', 'Wrap With', 'Move Up', 'Move Down', 'Toggle Breakpoint', 'Delete', 'Show BPEL Mapper', 'Properties'.</result>
        </usecase>
        <usecase name="Remove RepeatUntil element by popup menu">
            <action>Select RepeatUntil element on diagram.</action>
            <action>Call context menu of RepeatUntil element and select item 'Delete'.</action>
            <result>RepeatUntil element should be removed.</result>
        </usecase>
        <usecase name="Remove RepeatUntil element by shortcut">
            <action>Select RepeatUntil element on diagram.</action>
            <action>Press 'Delete' button.</action>
            <result>RepeatUntil element should be removed.</result>
        </usecase>
        <usecase name="Set condition for RepeatUntil element">
            <action>Select RepeatUntil element on diagram.</action>
            <action>Set condition for RepeatUntil element.</action>
            <result>The property should have entered the value in both Properties window and Source View.</result>
        </usecase>
    </caseblock>
        
</spec>
