Design: 02.01.02.02/P12

This is an abstract, language-independent design. Grim details may be found in the corresponding source code. You may return to the documentation for the module containing this program design, or to the entire hierarchical table of topics covered by the PVT.


PROGRAM 12: Deletion of a structure network with the reference
            flag set to keep and references are made to the
            open non-specified structure

CHARACTERISTICS: ynnn

OPERATOR SCRIPT: passive test

DESIGN:

Use <open structure> and <execute structure> to set up the CSS
as follows:


                   100
                  /  \
                 /    \
               1/      \2
               /        \
              /          \
          101              102     120   130             140
          | |             / | \     |    /|               |
         1| |2           /  |  \    |   / |              1|
          | |          1/  2|  3\  1|  /1 |2              |
          | |          /    |    \  | /   |               |
          103         /     |     \ |/    |              142
                   104     105     106   107
                   | |       |     |    / /\
                  1| |2     /|\    |   / /  \
                   | |    1/ | \3 1| 1/ /2   \3
                   109    /  |  \  | / /      \
                         /   |   \ |/ /       113
                       110   |    108
                             |2    |1
                             |     |
                             |     |
                             |    111
                             |   / |
                             | 1/  |
                             | /  2|
                             |/    |
                            114   115


The nodes of the graph (100 and above) represent structures, and the
labelled edges are references to invoke (lower) structures.  The
labels (1-3) represent the element position of the <execute structure>
function within the calling structure.

TEST: #SR 6 7 8
      "When the reference handling flag is set to keep and the open
       non-specified structure is referenced outside the structure network
       the following changes should occur to the CSS:
       The specified and all closed non-specified structures all of
       whose maximal ancestor paths contain the specified structure
       are removed. All non-specified opened or closed structures
       one of whose maximal ancestor path does not contain the
       specified structure remain AS IS."

specf = 100
nospec = 108
reffg = KEEP
<open structure> nospec
<post structure> specf
<post structure> nospec
<delete structure network> using specf, reffg

pass/fail depending on (CSS contents =

                                120   130             140
                                 |    /|               |
                                 |   / |              1|
                                1|  /1 |2              |
                                 | /   |               |
                                 |/    |              142
                                106   107
                                |    / /\
                                |   / /  \
                               1| 1/ /2   \3
                                | / /      \
                                |/ /       113
                               108
                                |
                                |1
                                |
                                |
                               111
                              / |
                             /  |
                           1/  2|
                           /    |
                         114   115    )

TEST: #SR 6
      "<Delete structure network> with the reference flag set to keep and
       an open non-specified structure which is referenced outside the
       structure network should cause that structure to exist in the CSS
       as an open structure."

use <inquire open structure> to determine
    stype = the structure status open or close
    strref = structure id

if (stype  = OPEN and
    nospec = strref) then
    pass
    <close structure>
else
    fail
endif

TEST: #SR 10
      "<Delete structure network> should cause the open posted non-specified
       structure referenced outside the structure network to remain posted
       and the closed posted specified to become unposted from the workstation
       when the reference handling flag is set to keep."

Use inquire posted structures to determine:
   pstnum = number of posted structuresi
   strid  = Nth identifier of the posted structure

<inquire posted structures> pstnum
pass/fail depending on (pstnum = 1 and strid = nospec)

END PROGRAM 12