---
- library: '&IDL_MochaBaseSystem;'
  instances:
  - element: '{29694806-1882-4cf9-b1c9-aaeee2d729a5}'
    name: Element Tests
    index: 113800
    processedByPRUMethod: '{2aa20384-4132-49d3-a661-ae7d9a2e2feb}'
    elementContents:
    - instance: '{91b1a767-08ac-47f0-9f30-620de6374d12}'
    - globalIdentifier: '{628550d8-673d-4156-8983-447ea2ee6d1b}'
      layout: '&IDI_ButtonLayout_DefaultButtonGroup;'
      label: 'Test Method Binding'
      value:
      - taskId: '{d44b1278-4e29-44f4-b1ca-2e6bde40377e}'
    - instance: '{946f14a7-559f-4f6f-ae47-cbcad1523ad5}'
    - instance: '{8c69fd8c-28fa-4f3c-a283-5d0006c1027d}'
    - instance: '{535b1507-68ed-4981-8cd4-e8e843a24916}'
    - instance: '{d74123b5-9fde-4c2a-bd28-8cd00ce86734}'
    - instance: '{d5653b81-a5e2-4f77-92f8-bcbae09f0d71}'

    #!FIXME: implement sorting by the Order attribute (on the BEM / BEM Process)
    #!     : `uses order Executable returning Attribute` => `Element Content`@get Order (GA)*P[ramb] )

  - class: '{cce471d6-5fe7-4202-b678-9fcab20fd864}'
    name: 'Element Tests Line Item'
    customTagName: 'ettc'
    processedByPRUMethod: '{2aa20384-4132-49d3-a661-ae7d9a2e2feb}'
    moduleId: '&IDI_Module_MochaBaseSystem_UI_UIExamples;'
    attributes:
    - instance: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}' # test with maxlength 20
      customTagName: 'twml'
    - instance: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}' # req field test
      customTagName: 'rqft'
  
  - ettc: '{98e038eb-ad55-4259-a4c5-8e82c221270c}'
    twml: 'hi world'
    rqft: 'test test'
  
  - ettc: '{d1a0e1d2-e380-4056-8c4f-f893c554527f}'
    twml: 'second ETTC test'
    rqft: 'another value for testing required'

  - workSet: '{36af925a-93f5-4cb8-986e-19ac239af253}'
    name: 'Element Tests Testing Classes [Nonsingular]'
    validClasses:
    - instance: '{cce471d6-5fe7-4202-b678-9fcab20fd864}' # ETTC 1
    
  - buildElementMethod: '{7a1add0d-1789-430f-95aa-203fe6991fcd}'
    hasBemProcess: {
      globalIdentifier: '{d1326df7-d897-46de-bad1-4d1e6f85b042}',
      name: 'build line items for Element Testing Test Class 1',
      loopExecutableReturningInstanceSet: '{ce3a9fcc-f5a1-45a6-9d9f-6e805906bb1f}' # the GSI, below
    }

  # `Element Tests Testing Class 1@get Instances for Element Tests Testing (GSI)*P*S`
  - getSpecifiedInstancesMethod: '{ce3a9fcc-f5a1-45a6-9d9f-6e805906bb1f}'
    forClassId: '{cce471d6-5fe7-4202-b678-9fcab20fd864}' # ETTC 1
    verb: 'get'
    name: 'Instances for Element Tests Testing'
    returnsWorkSetId: '{36af925a-93f5-4cb8-986e-19ac239af253}'
    moduleId: '&IDI_Module_MochaBaseSystem_UI_UIExamples;'
    accessModifierId: '&IDI_AccessModifier_Public;'
    selectsInstances:
    - instance: '{98e038eb-ad55-4259-a4c5-8e82c221270c}'
    - instance: '{d1a0e1d2-e380-4056-8c4f-f893c554527f}'

  - processRelatedUpdatesMethod: '{2aa20384-4132-49d3-a661-ae7d9a2e2feb}'
    name: 'PRU for Element Tests Class 1'
    processesForClass: '{cce471d6-5fe7-4202-b678-9fcab20fd864}'
    usesExecutableForPUMB:
    - instance: '{0063c073-28be-4e81-a9bc-b551a17e75e0}'
    - instance: '{d6aea527-d0a8-4070-9332-9101ee14c656}'

  - assignAttributeMethod: '{0063c073-28be-4e81-a9bc-b551a17e75e0}'
    usesExecutableReturningAttribute: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}' # EC
    assignsAttribute: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}' # req field test

  - assignAttributeMethod: '{d6aea527-d0a8-4070-9332-9101ee14c656}'
    usesExecutableReturningAttribute: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}' # EC
    assignsAttribute: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}' # req field test

  - buttonLayout: '&IDI_ButtonLayout_DefaultButtonGroup;'
    executesTask: '&IDI_SequenceTask_TestMethodBinding;'

  - textAttribute: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}'
    name: 'Test_With_MaxLength_20'
    maximumLength: 20

  - textAttribute: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}'
    name: 'Test_for_Required_Field'

  - textAttribute: '{dd33bb2a-1e10-4090-a846-89a225103c07}'
    name: 'Not Enterable Text Attribute Test'
    value: 'This element content is `Not Enterable`, and will always have its default value'

  - elementContent: '{91b1a767-08ac-47f0-9f30-620de6374d12}'
    order: 'a'
    label: 'Element Content Test Class'
    defaultDataType: '{cce471d6-5fe7-4202-b678-9fcab20fd864}'
    value: '{98e038eb-ad55-4259-a4c5-8e82c221270c}'
    #displayOptions:
    #- instance: '&IDI_DisplayOption_DoNotShow;'

  - elementContent: '{535b1507-68ed-4981-8cd4-e8e843a24916}'
    order: 'b'
    label: 'Label Override for Not Enterable'
    defaultDataType: '{dd33bb2a-1e10-4090-a846-89a225103c07}'
    builtFromBEMProcess: '&IDBEM_1;'
    displayOptions:
    - instance: '&IDI_DisplayOption_NotEnterable;'

  - elementContent: '{8c69fd8c-28fa-4f3c-a283-5d0006c1027d}'
    order: 'c'
    label: 'Test with MaxLength 20'
    defaultDataType: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}'
    builtFromBEMProcess: '&IDBEM_1;'
    parameters:
    - derivedECParameter: '{08563151-04c7-40d1-adff-a3dc2e12be2b}'
      assignsToParm: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}'
      # contextType: null
      # specificWorkData: null
      # onMultipleSelection: null

  - elementContent: '{d74123b5-9fde-4c2a-bd28-8cd00ce86734}'
    order: 'd'
    label: 'This field is required'
    defaultDataType: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}'
    builtFromBEMProcess: '&IDBEM_1;'
    displayOptions:
    - instance: '&IDI_DisplayOption_Required;'
    parameters:
    # Test for Required Field
    - derivedECParameter: '{a8c306ed-9eb6-49c8-a6dc-357617e493d5}'
      assignsToParm: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}'

  - element: '{0f95606c-3653-4e40-af4e-34c501b669af}'
    name: Test Horizozntal EC with Grid Layout
    index: 113803
    #processedByPRUMethod: '{2aa20384-4132-49d3-a661-ae7d9a2e2feb}'
    elementContents:
    - instance: '{c87a8626-0b3c-4ef2-97b0-f5064f6b09d9}'
    - instance: '{482845f5-c9cc-4c7b-ad5b-5aecbce3b086}'
    - instance: '{c38d8498-005e-4046-8150-e3def3c091ca}'
    - instance: '{a3032fd2-e149-4b00-b702-17862254adc2}'

  - elementContent: '{c87a8626-0b3c-4ef2-97b0-f5064f6b09d9}'
    order: 'a'
    label: 'Test Class Again'
    defaultDataType: '{cce471d6-5fe7-4202-b678-9fcab20fd864}'
    value: '{98e038eb-ad55-4259-a4c5-8e82c221270c}'
    #displayOptions:
    #- instance: '&IDI_DisplayOption_DoNotShow;'

  - elementContent: '{482845f5-c9cc-4c7b-ad5b-5aecbce3b086}'
    label: 'Not Enterable Again'
    defaultDataType: '{dd33bb2a-1e10-4090-a846-89a225103c07}'
    displayOptions:
    - instance: '&IDI_DisplayOption_NotEnterable;'

  - elementContent: '{c38d8498-005e-4046-8150-e3def3c091ca}'
    label: 'Test with MaxLength 20 Again'
    defaultDataType: '{1a907d6e-b3fd-4f8e-a170-550aeb2faea5}'
    displayOptions:
    - instance: '&IDI_DisplayOption_NotEnterable;'

  - elementContent: '{a3032fd2-e149-4b00-b702-17862254adc2}'
    label: 'Required Field Again'
    defaultDataType: '{d53d7283-92a2-4a62-b8f2-cf0a0b975634}'
    displayOptions:
    - instance: '&IDI_DisplayOption_NotEnterable;'

  - elementContent: '{946f14a7-559f-4f6f-ae47-cbcad1523ad5}'
    order: 'e'
    label: 'Users On This SUV'
    defaultDataType: '&IDE_UserList;'
    builtFromBEMProcess: '&IDBEMP_UserList;'
    displayOptions:
    - instance: '&IDI_DisplayOption_NotEnterable;'

  - elementContent: '{d5653b81-a5e2-4f77-92f8-bcbae09f0d71}'
    order: 'f'
    label: 'Test Horizontal EC with Grid Layout'
    defaultDataType: '{0f95606c-3653-4e40-af4e-34c501b669af}'
    builtFromBEMProcess: '{d1326df7-d897-46de-bad1-4d1e6f85b042}'
    # displayOptions:
    # - instance: '&IDI_DisplayOption_Required;'
