{
  "version": 1,
  "style": "unit",
  "description": "must issue Connections to threads in the order that the threads entered the queue",
  "poolOptions": {
    "maxPoolSize": 1,
    "waitQueueTimeoutMS": 5000
  },
  "operations": [
    {
      "name": "checkOut",
      "label": "conn0"
    },
    {
      "name": "start",
      "target": "thread1"
    },
    {
      "name": "checkOut",
      "thread": "thread1",
      "label": "conn1"
    },
    {
      "name": "waitForEvent",
      "event": "ConnectionCheckOutStarted",
      "count": 2
    },
    {
      "name": "wait",
      "ms": 100
    },
    {
      "name": "start",
      "target": "thread2"
    },
    {
      "name": "checkOut",
      "thread": "thread2",
      "label": "conn2"
    },
    {
      "name": "waitForEvent",
      "event": "ConnectionCheckOutStarted",
      "count": 3
    },
    {
      "name": "wait",
      "ms": 100
    },
    {
      "name": "start",
      "target": "thread3"
    },
    {
      "name": "checkOut",
      "thread": "thread3",
      "label": "conn3"
    },
    {
      "name": "waitForEvent",
      "event": "ConnectionCheckOutStarted",
      "count": 4
    },
    {
      "name": "wait",
      "ms": 100
    },
    {
      "name": "start",
      "target": "thread4"
    },
    {
      "name": "checkOut",
      "thread": "thread4",
      "label": "conn4"
    },
    {
      "name": "waitForEvent",
      "event": "ConnectionCheckOutStarted",
      "count": 5
    },
    {
      "name": "wait",
      "ms": 100
    },
    {
      "name": "checkIn",
      "connection": "conn0"
    },
    {
      "name": "waitForThread",
      "target": "thread1"
    },
    {
      "name": "checkIn",
      "connection": "conn1"
    },
    {
      "name": "waitForThread",
      "target": "thread2"
    },
    {
      "name": "checkIn",
      "connection": "conn2"
    },
    {
      "name": "waitForThread",
      "target": "thread3"
    },
    {
      "name": "checkIn",
      "connection": "conn3"
    },
    {
      "name": "waitForThread",
      "target": "thread4"
    }
  ],
  "events": [
    {
      "type": "ConnectionCheckOutStarted",
      "address": 42
    },
    {
      "type": "ConnectionCheckedOut",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckOutStarted",
      "address": 42
    },
    {
      "type": "ConnectionCheckOutStarted",
      "address": 42
    },
    {
      "type": "ConnectionCheckOutStarted",
      "address": 42
    },
    {
      "type": "ConnectionCheckOutStarted",
      "address": 42
    },
    {
      "type": "ConnectionCheckedIn",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedOut",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedIn",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedOut",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedIn",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedOut",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedIn",
      "connectionId": 42,
      "address": 42
    },
    {
      "type": "ConnectionCheckedOut",
      "connectionId": 42,
      "address": 42
    }
  ],
  "ignore": [
    "ConnectionCreated",
    "ConnectionReady",
    "ConnectionClosed",
    "ConnectionPoolCreated"
  ]
}
