test_propagate_import Subroutine

public subroutine test_propagate_import()

Arguments

None

Calls

proc~~test_propagate_import~~CallsGraph proc~test_propagate_import test_propagate_import anyexceptions anyexceptions proc~test_propagate_import->anyexceptions assert_that assert_that proc~test_propagate_import->assert_that false false proc~test_propagate_import->false none~add_primary_spec StateRegistry%add_primary_spec proc~test_propagate_import->none~add_primary_spec none~add_subregistry StateRegistry%add_subregistry proc~test_propagate_import->none~add_subregistry none~get_extension_family StateRegistry%get_extension_family proc~test_propagate_import->none~get_extension_family none~has_primary ExtensionFamily%has_primary proc~test_propagate_import->none~has_primary none~has_virtual_pt StateRegistry%has_virtual_pt proc~test_propagate_import->none~has_virtual_pt none~num_owned_items StateRegistry%num_owned_items proc~test_propagate_import->none~num_owned_items none~propagate_unsatisfied_imports~3 StateRegistry%propagate_unsatisfied_imports proc~test_propagate_import->none~propagate_unsatisfied_imports~3 sourcelocation sourcelocation proc~test_propagate_import->sourcelocation true true proc~test_propagate_import->true none~add_family StateRegistry%add_family none~add_primary_spec->none~add_family none~back~56 StateItemExtensionVector%back none~add_primary_spec->none~back~56 none~push_back~49 StateItemExtensionVector%push_back none~add_primary_spec->none~push_back~49 proc~mapl_return MAPL_Return none~add_primary_spec->proc~mapl_return proc~mapl_verify MAPL_Verify none~add_primary_spec->proc~mapl_verify interface~mapl_assert MAPL_Assert none~add_subregistry->interface~mapl_assert none~get_name~14 StateRegistry%get_name none~add_subregistry->none~get_name~14 none~has_subregistry StateRegistry%has_subregistry none~add_subregistry->none~has_subregistry none~insert~88 RegistryPtrMap%insert none~add_subregistry->none~insert~88 none~add_subregistry->proc~mapl_return none~at~112 VirtualPtFamilyMap%at none~get_extension_family->none~at~112 none~get_extension_family->proc~mapl_return none~get_extension_family->proc~mapl_verify none~propagate_unsatisfied_imports_virtual_pt StateRegistry%propagate_unsatisfied_imports_virtual_pt none~propagate_unsatisfied_imports~3->none~propagate_unsatisfied_imports_virtual_pt

Source Code

   subroutine test_propagate_import()
      type(StateRegistry), target :: r_child, r_parent
      integer :: status
      type(VirtualConnectionPt) :: v_pt
      type(ExtensionFamily), pointer :: family

      r_parent = StateRegistry('parent')
      r_child = StateRegistry('child')
      call r_parent%add_subregistry(r_child)

      v_pt = VirtualConnectionPt(state_intent='import', short_name='T')
      call r_child%add_primary_spec(v_pt, MockItemSpec('T_child'), _RC)
      call r_parent%propagate_unsatisfied_imports(_RC)

      @assert_that(r_parent%num_owned_items(), is(0))
      @assert_that(r_parent%has_virtual_pt(v_pt), is(true()))

      family => r_parent%get_extension_family(v_pt, _RC)
      @assert_that(family%has_primary(), is(false()))
      
   end subroutine test_propagate_import