class SMARTAppLaunch::SMARTAccessBrandsValidateBrands

def check_portal_endpoints(portal_endpoints, organization_endpoints)

def check_portal_endpoints(portal_endpoints, organization_endpoints)
  portal_endpoints.each do |portal_endpoint|
    portal_endpoint_found = organization_endpoints.any? do |endpoint_reference|
      portal_endpoint.valueReference.reference == endpoint_reference
    end
    assert(portal_endpoint_found, %(
      Portal endpoints must also appear at Organization.endpoint. The portal endpoint with reference
      #{portal_endpoint.valueReference.reference} was not found at Organization.endpoint.))
  end
end

def find_all_extensions(extension_array, extension_name)

def find_all_extensions(extension_array, extension_name)
  extension_array.select do |extension|
    extension.url == extension_name
  end
end

def find_extension(extension_array, extension_name)

def find_extension(extension_array, extension_name)
  extension_array.find do |extension|
    extension.url.ends_with?(extension_name)
  end
end

def find_referenced_endpoint(bundle_resource, endpoint_id_ref)

def find_referenced_endpoint(bundle_resource, endpoint_id_ref)
  bundle_resource
    .entry
    .map(&:resource)
    .select { |resource| resource.resourceType == 'Endpoint' }
    .map(&:id)
    .select { |endpoint_id| endpoint_id_ref.include? endpoint_id }
end

def skip_message

def skip_message
  %(
    No User Access Brands request was made in the previous test, and no User Access Brands Bundle was provided as
    input instead. Either provide a User Access Brands Publication URL to retrieve the Bundle via a HTTP GET
    request, or provide the Bundle as an input.
  )
end