[
  {
    "id": "full-order-with-855",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "expectedOutcome": "PASSED"
  },
  {
    "id": "full-order-without-855",
    "acknowledgmentCount": 0,
    "steps": [
      "purchaseOrder",
      "advanceShipNotice",
      "invoice"
    ],
    "expectedOutcome": "PASSED"
  },
  {
    "id": "expected-855-is-still-missing",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "advanceShipNotice",
      "invoice"
    ],
    "expectedOutcome": "PENDING"
  },
  {
    "id": "expected-855-is-overdue",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "advanceShipNotice",
      "invoice"
    ],
    "evaluatedAfterSeconds": 259200,
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:acknowledgmentForOrder",
    "expectedCode": "TRANSITION_WINDOW_EXPIRED"
  },
  {
    "id": "855-for-another-order",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "PO-EXAMPLE-1001",
            "PO-OTHER"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:acknowledgmentForOrder"
  },
  {
    "id": "855-rejects-order",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "BAK*00*AK",
            "BAK*00*RJ"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:acknowledgmentAcceptsWithoutChanges"
  },
  {
    "id": "855-accepts-with-changes",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "purchaseOrderAcknowledgment",
        "replacements": [
          [
            "BAK*00*AK",
            "BAK*00*AC"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:acknowledgmentAcceptsWithoutChanges"
  },
  {
    "id": "invoice-for-another-order",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "PO-EXAMPLE-1001",
            "PO-OTHER"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:invoiceForOrder"
  },
  {
    "id": "invoice-for-another-shipment",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "REF*SI*SHIP-1001",
            "REF*SI*SHIP-OTHER"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:invoiceForShipment"
  },
  {
    "id": "same-total-wrong-item-quantities",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "advanceShipNotice",
        "replacements": [
          [
            "LIN**VN*ITEM-A~\nSN1**10*EA",
            "LIN**VN*ITEM-A~\nSN1**15*EA"
          ],
          [
            "LIN**VN*ITEM-B~\nSN1**10*EA",
            "LIN**VN*ITEM-B~\nSN1**5*EA"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder"
  },
  {
    "id": "wrong-shipped-item",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "advanceShipNotice",
        "replacements": [
          [
            "ITEM-B",
            "ITEM-C"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:advanceShipNoticeLineKeysMatchOrder"
  },
  {
    "id": "duplicate-shipped-item",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "advanceShipNotice",
        "replacements": [
          [
            "ITEM-B",
            "ITEM-A"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:advanceShipNoticeLineKeysUnique"
  },
  {
    "id": "wrong-shipped-unit",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "advanceShipNotice",
        "replacements": [
          [
            "SN1**10*EA",
            "SN1**10*CA"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:advanceShipNoticeLineKeysMatchOrder"
  },
  {
    "id": "same-total-wrong-unit-prices",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "10*EA*12.5",
            "10*EA*10"
          ],
          [
            "10*EA*25",
            "10*EA*27.5"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:invoicePricesMatchOrder"
  },
  {
    "id": "invoice-total-disagrees-with-lines",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "TDS*37500",
            "TDS*37600"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:invoiceTotalMatchesLines"
  },
  {
    "id": "invoice-currency-disagrees",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "CUR*BY*USD",
            "CUR*BY*CAD"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:invoiceCurrencyMatchesOrder"
  },
  {
    "id": "line-order-does-not-matter",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "IT1*1*10*EA*12.5**VN*ITEM-A~\nIT1*2*10*EA*25**VN*ITEM-B~",
            "IT1*2*10*EA*25**VN*ITEM-B~\nIT1*1*10*EA*12.5**VN*ITEM-A~"
          ]
        ]
      }
    ],
    "expectedOutcome": "PASSED"
  },
  {
    "id": "equivalent-decimal-text",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "invoice",
        "replacements": [
          [
            "10*EA*12.5",
            "10.00*EA*12.50"
          ],
          [
            "10*EA*25",
            "10.0*EA*25.000"
          ]
        ]
      }
    ],
    "expectedOutcome": "PASSED"
  },
  {
    "id": "partial-shipment-is-not-full-fulfillment",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "changes": [
      {
        "stepId": "advanceShipNotice",
        "replacements": [
          [
            "SN1**10*EA",
            "SN1**5*EA"
          ]
        ]
      }
    ],
    "expectedOutcome": "FAILED",
    "expectedCheck": "assertion:advanceShipNoticeQuantitiesMatchOrder"
  },
  {
    "id": "unexpected-855-when-count-is-zero",
    "acknowledgmentCount": 0,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "expectedOutcome": "FAILED"
  },
  {
    "id": "shipment-past-seven-day-window",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "purchaseOrderAcknowledgment",
      "advanceShipNotice",
      "invoice"
    ],
    "observedAfterSeconds": {
      "advanceShipNotice": 691200,
      "invoice": 691260
    },
    "evaluatedAfterSeconds": 777600,
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:shipmentForOrder"
  },
  {
    "id": "no-855-is-still-valid-after-855-deadline",
    "acknowledgmentCount": 0,
    "steps": [
      "purchaseOrder",
      "advanceShipNotice",
      "invoice"
    ],
    "expectedOutcome": "PASSED",
    "evaluatedAfterSeconds": 259200
  },
  {
    "id": "expected-855-at-exact-deadline-remains-pending",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "advanceShipNotice",
      "invoice"
    ],
    "expectedOutcome": "PENDING",
    "evaluatedAfterSeconds": 172800
  },
  {
    "id": "expected-855-one-second-after-deadline-fails",
    "acknowledgmentCount": 1,
    "steps": [
      "purchaseOrder",
      "advanceShipNotice",
      "invoice"
    ],
    "evaluatedAfterSeconds": 172801,
    "expectedOutcome": "FAILED",
    "expectedCheck": "transition:acknowledgmentForOrder",
    "expectedCode": "TRANSITION_WINDOW_EXPIRED"
  }
]
