<?xml version="1.0" encoding="UTF-8"?>

<Basic xmlns="http://hl7.org/fhir">
  <id value="TestPlan-VHLSharer"/>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.url">
    <valueUri value="https://profiles.ihe.net/ITI/VHL/TestPlan/TestPlan-VHLSharer"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.version">
    <valueString value="0.0.2-current"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.name">
    <valueString value="TestPlan_VHLSharer"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.title">
    <valueString value="Test Plan – VHL Sharer"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.status">
    <valueCode value="active"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.date">
    <valueDateTime value="2026-03-12T12:40:14+00:00"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.publisher">
    <valueString value="IHE IT Infrastructure Technical Committee"/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.contact">
    <valueContactDetail>
      <telecom>
        <system value="url"/>
        <value value="https://www.ihe.net/ihe_domains/it_infrastructure/"/>
      </telecom>
    </valueContactDetail>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.contact">
    <valueContactDetail>
      <telecom>
        <system value="email"/>
        <value value="iti@ihe.net"/>
      </telecom>
    </valueContactDetail>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.contact">
    <valueContactDetail>
      <name value="IHE IT Infrastructure Technical Committee"/>
      <telecom>
        <system value="email"/>
        <value value="iti@ihe.net"/>
      </telecom>
    </valueContactDetail>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.description">
    <valueMarkdown value="Unit test plan for the **VHL Sharer** actor of the IHE ITI Verifiable Health Links (VHL) profile.&#xA;&#xA;Scope: validates all behaviour expected of a VHL Sharer across its four transactions:&#xA;submitting its own PKI material (ITI-YY1 initiator), retrieving the trust list to obtain peer&#xA;keys (ITI-YY2 initiator), generating VHLs on demand (ITI-YY3 responder), and serving document&#xA;manifests to authorised VHL Receivers (ITI-YY5 responder). Each test suite corresponds to one&#xA;transaction and exercises three atomic feature files."/>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.jurisdiction">
    <valueCodeableConcept>
      <coding>
        <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
        <code value="001"/>
      </coding>
    </valueCodeableConcept>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.scope">
    <valueReference>
      <reference value="ActorDefinition/VHLSharer"/>
    </valueReference>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase">
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.sequence">
      <valueInteger value="1"/>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY1 Message Semantics** – Shared message format file (same as Trust Anchor suite 1).&#xA;Verifies the DID Document structure the VHL Sharer must construct."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY1-submit-pki-material-message.feature"/>
            <display value="ITI-YY1 Submit PKI Material – Message Semantics"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY1 VHL Sharer Initiator Expected Actions** – Verifies key pair generation, submission&#xA;pathways (direct HTTP POST, indirect publication, offline), provenance metadata, response&#xA;handling (201/400/401/403/422), and secure private key retention.&#xA;Source: sections 2:3.YY1.4.1.2 (Message Semantics) and 2:3.YY1.4.1.3 (Initiator Expected Actions)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY1-submit-pki-material-initiator.feature"/>
            <display value="ITI-YY1 Submit PKI Material – VHL Sharer Initiator Expected Actions"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY1 Security Considerations** – Shared security file (same as Trust Anchor suite 1)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY1-submit-pki-material-security.feature"/>
            <display value="ITI-YY1 Submit PKI Material – Security Considerations"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase">
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.sequence">
      <valueInteger value="2"/>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY2 Message Semantics** – Shared message format file.&#xA;Verifies the request/response format for the trust list retrieval."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY2-retrieve-trust-list-message.feature"/>
            <display value="ITI-YY2 Retrieve Trust List – Message Semantics"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY2 VHL Sharer Initiator Expected Actions** – Verifies that the VHL Sharer correctly&#xA;constructs retrieval requests, sends them over TLS, validates and caches returned DID Documents,&#xA;maps verification methods, tracks expiry, handles revocation notifications, and processes&#xA;error responses (401/403/404).&#xA;Source: sections 2:3.YY2.4.1 (Request Message) and 2:3.YY2.4.2.3 (Initiator Expected Actions)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY2-retrieve-trust-list-initiator.feature"/>
            <display value="ITI-YY2 Retrieve Trust List – VHL Sharer Initiator Expected Actions"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY2 Security Considerations** – Shared security file."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY2-retrieve-trust-list-security.feature"/>
            <display value="ITI-YY2 Retrieve Trust List – Security Considerations"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase">
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.sequence">
      <valueInteger value="3"/>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY3 Message Semantics** – Verifies the $generate-vhl request parameter definitions&#xA;(sourceIdentifier, exp, flag, label, passcode) and the response format&#xA;(HTTP 200, FHIR Parameters, Binary qrcode, HC1: prefix)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY3-generate-vhl-message.feature"/>
            <display value="ITI-YY3 Generate VHL – Message Semantics"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY3 VHL Sharer Responder Expected Actions** – Verifies the complete VHL generation&#xA;pipeline: passcode hashing (bcrypt/Argon2/PBKDF2), folder ID (256-bit entropy) and 32-byte&#xA;encryption key generation, SHL payload construction (url/key/flag/v), mandatory manifest URL&#xA;parameters, HCERT/CWT encoding (COSE signing → ZLIB → Base45 → HC1: prefix), QR code&#xA;generation (ISO/IEC 18004:2015 Alphanumeric mode Q), and error OperationOutcome responses.&#xA;Source: sections 2:3.YY3.4.1.3 (Responder Expected Actions) and 2:3.YY3.4.2 (Response Message)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY3-generate-vhl-responder.feature"/>
            <display value="ITI-YY3 Generate VHL – VHL Sharer Responder Expected Actions"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY3 Security Considerations** – Verifies HTTPS enforcement, passcode security&#xA;(no plaintext storage, no embedding in QR code), key entropy requirements, and PHI exclusion."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY3-generate-vhl-security.feature"/>
            <display value="ITI-YY3 Generate VHL – Security Considerations"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
  </extension>
  <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase">
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.sequence">
      <valueInteger value="4"/>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY5 Message Semantics** – Verifies request format (HTTP POST /List/_search,&#xA;Content-Type, Accept, FHIR search parameters, SHL parameters, HTTP Message Signature&#xA;headers) and response format (searchset Bundle structure, search.mode, error codes)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY5-retrieve-manifest-message.feature"/>
            <display value="ITI-YY5 Retrieve Manifest – Message Semantics"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY5 VHL Sharer Responder Expected Actions** – Verifies HTTP Message Signature&#xA;verification (keyid lookup, RFC 9421 signature base, Content-Digest), OAuth FAST Option&#xA;token validation, VHL authorisation (folder ID, expiry, revocation, passcode hash comparison),&#xA;FHIR search execution (_include support), Bundle construction, error codes (400/401/403/404/422/429/500),&#xA;rate limiting, and audit logging.&#xA;Source: sections 2:3.YY5.4.1.5 (Responder Expected Actions), 2:3.YY5.4.2 (Response Message),&#xA;and 2:3.YY5.5 (Security Considerations)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY5-retrieve-manifest-responder.feature"/>
            <display value="ITI-YY5 Retrieve Manifest – VHL Sharer Responder Expected Actions"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
    <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun">
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.narrative">
        <valueMarkdown value="**ITI-YY5 Security Considerations** – Verifies TLS requirements, replay prevention (signature&#xA;timestamp freshness, OAuth jti uniqueness), passcode timing-attack protection, trust list&#xA;enforcement, and audit logging (no plaintext passcode in logs)."/>
      </extension>
      <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script">
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.language">
          <valueCodeableConcept>
            <coding>
              <system value="urn:ietf:bcp:13"/>
              <code value="text/x-gherkin"/>
            </coding>
            <text value="Gherkin"/>
          </valueCodeableConcept>
        </extension>
        <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-TestPlan.testCase.testRun.script.sourceReference">
          <valueReference>
            <reference value="https://build.fhir.org/ig/IHE/ITI.VHL/ITI-YY5-retrieve-manifest-security.feature"/>
            <display value="ITI-YY5 Retrieve Manifest – Security Considerations"/>
          </valueReference>
        </extension>
      </extension>
    </extension>
  </extension>
  <code>
    <coding>
      <system value="http://hl7.org/fhir/fhir-types"/>
      <code value="TestPlan"/>
    </coding>
  </code>
</Basic>