{
  "tests": [
    {
      "description": "proxyPort without proxyHost",
      "uri": "mongodb://localhost/?proxyPort=1080",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "proxyUsername without proxyHost",
      "uri": "mongodb://localhost/?proxyUsername=abc",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "proxyPassword without proxyHost",
      "uri": "mongodb://localhost/?proxyPassword=def",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "all other proxy options without proxyHost",
      "uri": "mongodb://localhost/?proxyPort=1080&proxyUsername=abc&proxyPassword=def",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "proxyUsername without proxyPassword",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyUsername=abc",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "proxyPassword without proxyUsername",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyPassword=def",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "multiple proxyHost parameters",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyHost=localhost2",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "multiple proxyPort parameters",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyPort=1234&proxyPort=12345",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "multiple proxyUsername parameters",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyUsername=abc&proxyUsername=def&proxyPassword=123",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "multiple proxyPassword parameters",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyUsername=abc&proxyPassword=123&proxyPassword=456",
      "valid": false,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": null
    },
    {
      "description": "only host present",
      "uri": "mongodb://localhost/?proxyHost=localhost",
      "valid": true,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": {}
    },
    {
      "description": "host and default port present",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyPort=1080",
      "valid": true,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": {}
    },
    {
      "description": "host and non-default port present",
      "uri": "mongodb://localhost/?proxyHost=localhost&proxyPort=12345",
      "valid": true,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": {}
    },
    {
      "description": "replicaset, host and non-default port present",
      "uri": "mongodb://rs1,rs2,rs3/?proxyHost=localhost&proxyPort=12345",
      "valid": true,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": {}
    },
    {
      "description": "all options present",
      "uri": "mongodb://rs1,rs2,rs3/?proxyHost=localhost&proxyPort=12345&proxyUsername=asdf&proxyPassword=qwerty",
      "valid": true,
      "warning": false,
      "hosts": null,
      "auth": null,
      "options": {}
    }
  ]
}
