Specification tests
This is to help track #209. The following is a list of specification test files that need to be included to be complete. This exercise may also introduce new functionality to the package. The specifications can be found here if anyone would care to help. We will be using the JSON files.
Auth
https://github.com/mongodb/specifications/tree/master/source/auth
- [ ] connection-string
BSON Corpus
https://github.com/mongodb/specifications/tree/master/source/bson-corpus
- [ ] array
- [ ] binary
- [ ] boolean
- [ ] code
- [ ] code_w_scope
- [ ] datetime
- [ ] dbpointer
- [ ] dbref
- [ ] decimal128-1
- [ ] decimal128-2
- [ ] decimal128-3
- [ ] decimal128-4
- [ ] decimal128-5
- [ ] decimal128-6
- [ ] decimal128-7
- [ ] document
- [ ] double
- [ ] int32
- [ ] int64
- [ ] maxkey
- [ ] minkey
- [ ] multi-type-deprecated
- [ ] multi-type
- [ ] null
- [ ] oid
- [ ] regex
- [ ] string
- [ ] symbol
- [ ] timestamp
- [ ] top
- [ ] undefined
Change Streams
https://github.com/mongodb/specifications/tree/master/source/change-streams
- [ ] change-streams-errors
- [ ] change-streams
Command Monitoring
https://github.com/mongodb/specifications/tree/master/source/command-monitoring
- [ ] bulkWrite
- [ ] command
- [ ] deleteMany
- [ ] deleteOne
- [ ] find
- [ ] insertMany
- [ ] insertOne
- [ ] unacknowledgedBulkWrite
- [ ] updateMany
- [ ] updateOne
Connection String
https://github.com/mongodb/specifications/tree/master/source/connection-string
- [ ] invalid-uris
- [ ] valid-auth
- [ ] valid-db-with-dotted-name
- [ ] valid-host_identifiers
- [ ] valid-options
- [ ] valid-unix_socket-absolute
- [ ] valid-unix_socket-relative
- [ ] valid-warnings
CRUD
https://github.com/mongodb/specifications/tree/master/source/crud
- [x] read/aggregate-collation
- [x] read/aggregate-out
- [x] read/aggregate
- [x] read/count-collation
- [x] read/count-empty
- [x] read/count
- [x] read/distinct-collation
- [x] read/distinct
- [x] read/find-collation
- [x] read/find
- [ ] write/bulkWrite-arrayFilters
- [ ] write/deleteMany-collation
- [ ] write/deleteMany
- [ ] write/deleteOne-collation
- [ ] write/deleteOne
- [ ] write/findOneAndDelete-collation
- [ ] write/findOneAndDelete
- [ ] write/findOneAndReplace-collation
- [ ] write/findOneAndReplace-upsert
- [ ] write/findOneAndReplace
- [ ] write/findOneAndUpdate-arrayFilters
- [ ] write/findOneAndUpdate-collation
- [ ] write/findOneAndUpdate
- [ ] write/insertMany
- [ ] write/insertOne
- [ ] write/replaceOne-collation
- [ ] write/replaceOne
- [ ] write/updateMany-arrayFilters
- [ ] write/updateMany-collation
- [ ] write/updateMany
- [ ] write/updateOne-arrayFilters
- [ ] write/updateOne-collation
- [ ] write/updateOne
GridFS
https://github.com/mongodb/specifications/tree/master/source/gridfs
- [ ] delete
- [ ] download
- [ ] download_by_name
- [ ] upload
Initial DNS Seedlist Discovery
https://github.com/mongodb/specifications/tree/master/source/initial-dns-seedlist-discovery
- [ ] longer-parent-in-return
- [ ] misformatted-option
- [ ] no-results
- [ ] not-enough-parts
- [ ] one-result-default-port
- [ ] one-txt-record-multiple-strings
- [ ] one-txt-record
- [ ] parent-part-mismatch1
- [ ] parent-part-mismatch2
- [ ] parent-part-mismatch3
- [ ] parent-part-mismatch4
- [ ] parent-part-mismatch5
- [ ] returned-parent-too-short
- [ ] returned-parent-wrong
- [ ] two-results-default-port
- [ ] two-results-nonstandard-port
- [ ] two-txt-records
- [ ] txt-record-not-allowed-option
- [ ] txt-record-with-overridden-ssl-option
- [ ] txt-record-with-overridden-uri-option
- [ ] txt-record-with-unallowed-option
- [ ] uri-with-admin-database
- [ ] uri-with-auth
- [ ] uri-with-port
- [ ] uri-with-two-hosts
Max Staleness
https://github.com/mongodb/specifications/tree/master/source/max-staleness
- [ ] ReplicaSetNoPrimary/DefaultNoMaxStaleness
- [ ] ReplicaSetNoPrimary/Incompatible
- [ ] ReplicaSetNoPrimary/LastUpdateTime
- [ ] ReplicaSetNoPrimary/Nearest
- [ ] ReplicaSetNoPrimary/Nearest2
- [ ] ReplicaSetNoPrimary/NoKnownServers
- [ ] ReplicaSetNoPrimary/PrimaryPreferred
- [ ] ReplicaSetNoPrimary/PrimaryPreferred_tags
- [ ] ReplicaSetNoPrimary/Secondary
- [ ] ReplicaSetNoPrimary/SecondaryPreferred
- [ ] ReplicaSetNoPrimary/SecondaryPreferred_tags
- [ ] ReplicaSetNoPrimary/ZeroMaxStaleness
- [ ] ReplicaSetWithPrimary/DefaultNoMaxStaleness
- [ ] ReplicaSetWithPrimary/Incompatible
- [ ] ReplicaSetWithPrimary/LastUpdateTime
- [ ] ReplicaSetWithPrimary/LongHeartbeat
- [ ] ReplicaSetWithPrimary/LongHeartbeat2
- [ ] ReplicaSetWithPrimary/MaxStalenessTooSmall
- [ ] ReplicaSetWithPrimary/MaxStalenessWithModePrimary
- [ ] ReplicaSetWithPrimary/Nearest
- [ ] ReplicaSetWithPrimary/Nearest2
- [ ] ReplicaSetWithPrimary/Nearest_tags
- [ ] ReplicaSetWithPrimary/PrimaryPreferred
- [ ] ReplicaSetWithPrimary/PrimaryPreferred_incompatible
- [ ] ReplicaSetWithPrimary/Secondary_tags
- [ ] ReplicaSetWithPrimary/Secondary_tags2
- [ ] ReplicaSetWithPrimary/SecondaryPreferred
- [ ] ReplicaSetWithPrimary/SecondaryPreferred_tags
- [ ] ReplicaSetWithPrimary/SecondaryPreferred_tags2
- [ ] ReplicaSetWithPrimary/ZeroMaxStaleness
- [ ] Sharded/Incompatible
- [ ] Sharded/SmallMaxStaleness
- [ ] Single/Incompatible
- [ ] Single/SmallMaxStaleness
- [ ] Unknown/SmallMaxStaleness
ObejctID
https://github.com/mongodb/specifications/tree/master/source/object-id/
- [ ] vectors
Read Write Concern
https://github.com/mongodb/specifications/tree/master/source/read-write-concern
- [ ] connection-string/read-concern
- [ ] connection-string/write-concern
- [ ] document/read-concern
- [ ] document/write-concern
Retryable Writes
https://github.com/mongodb/specifications/tree/master/source/retryable-writes
- [ ] bulkWrite-serverErrors
- [ ] bulkWrite
- [ ] deleteOne-serverErrors
- [ ] deleteOne
- [ ] findOneAndDelete-serverErrors
- [ ] findOneAndDelete
- [ ] findOneAndReplace-serverErrors
- [ ] findOneAndReplace
- [ ] findOneAndUpdate-serverErrors
- [ ] findOneAndUpdate
- [ ] insertMany-serverErrors
- [ ] insertMany
- [ ] insertOne-serverErrors
- [ ] insertOne
- [ ] replaceOne-serverErrors
- [ ] replaceOne
- [ ] updateOne-serverErrors
- [ ] updateOne
Server Discovery and Monitoring
https://github.com/mongodb/specifications/tree/master/source/server-discovery-and-monitoring
- [ ] monitoring/replica_set_with_no_primary
- [ ] monitoring/replica_set_with_primary
- [ ] monitoring/replica_set_with_removal
- [ ] monitoring/required_replica_set
- [ ] monitoring/standalone
- [ ] rs/compatible
- [ ] rs/discover_arbiters
- [ ] rs/discover_passives
- [ ] rs/discover_primary
- [ ] rs/discover_secondary
- [ ] rs/discovery
- [ ] rs/equal_electionids
- [ ] rs/ghost_discovered
- [ ] rs/hosts_differ_from_seeds
- [ ] rs/ls_timeout
- [ ] rs/member_reconfig
- [ ] rs/member_standalone
- [ ] rs/new_primary
- [ ] rs/new_primary_new_electionid
- [ ] rs/new_primary_new_setversion
- [ ] rs/new_primary_wrong_set_name
- [ ] rs/non_rs_member
- [ ] rs/normalize_case
- [ ] rs/normalize_case_me
- [ ] rs/null_election_id
- [ ] rs/primary_becomes_standalone
- [ ] rs/primary_changes_set_name
- [ ] rs/primary_disconnect
- [ ] rs/primary_disconnect_electionid
- [ ] rs/primary_disconnect_setversion
- [ ] rs/primary_hint_from_secondary_with_mismatched_me
- [ ] rs/primary_mismatched_me
- [ ] rs/primary_reports_new_member
- [ ] rs/primary_to_no_primary_mismatched_me
- [ ] rs/primary_wrong_set_name
- [ ] rs/response_from_removed
- [ ] rs/rsother_discovered
- [ ] rs/sec_not_auth
- [ ] rs/secondary_mismatched_me
- [ ] rs/secondary_wrong_set_name
- [ ] rs/secondary_wrong_set_name_with_primary
- [ ] rs/setversion_without_electionid
- [ ] rs/stepdown_change_set_name
- [ ] rs/too_new
- [ ] rs/too_old
- [ ] rs/unexpected_mongos
- [ ] rs/use_setversion_without_electionid
- [ ] rs/wrong_set_name
- [ ] sharded/compatible
- [ ] sharded/ls_timeout_mongos
- [ ] sharded/mongos_disconnect
- [ ] sharded/multiple_mongoses
- [ ] sharded/non_mongos_removed
- [ ] sharded/normalize_uri_case
- [ ] sharded/too_new
- [ ] sharded/too_old
- [ ] single/compatible
- [ ] single/direct_connection_external_ip
- [ ] single/direct_connection_mongos
- [ ] single/direct_connection_rsarbiter
- [ ] single/direct_connection_rsprimary
- [ ] single/direct_connection_rssecondary
- [ ] single/direct_connection_slave
- [ ] single/direct_connection_standalone
- [ ] single/ls_timeout_standalone
- [ ] single/not_ok_response
- [ ] single/standalone_removed
- [ ] single/too_new
- [ ] single/too_old
- [ ] single/unavailable_seed
Server Selection
https://github.com/mongodb/specifications/tree/master/source/server-selection
- [ ] rtt/first_value
- [ ] rtt/first_value_zero
- [ ] rtt/value_test_1
- [ ] rtt/value_test_2
- [ ] rtt/value_test_3
- [ ] rtt/value_test_4
- [ ] rtt/value_test_5
- [ ] server_selection/ReplicaSetNoPrimary/read/Nearest
- [ ] server_selection/ReplicaSetNoPrimary/read/Nearest_multiple
- [ ] server_selection/ReplicaSetNoPrimary/read/Nearest_non_matching
- [ ] server_selection/ReplicaSetNoPrimary/read/PossiblePrimary
- [ ] server_selection/ReplicaSetNoPrimary/read/PossiblePrimaryNearest
- [ ] server_selection/ReplicaSetNoPrimary/read/Primary
- [ ] server_selection/ReplicaSetNoPrimary/read/PrimaryPreferred
- [ ] server_selection/ReplicaSetNoPrimary/read/PrimaryPreferred_non_matching
- [ ] server_selection/ReplicaSetNoPrimary/read/Secondary
- [ ] server_selection/ReplicaSetNoPrimary/read/Secondary_multi_tags
- [ ] server_selection/ReplicaSetNoPrimary/read/Secondary_multi_tags2
- [ ] server_selection/ReplicaSetNoPrimary/read/Secondary_non_matching
- [ ] server_selection/ReplicaSetNoPrimary/read/SecondaryPreferred
- [ ] server_selection/ReplicaSetNoPrimary/read/SecondaryPreferred_non_matching
- [ ] server_selection/ReplicaSetNoPrimary/write/SecondaryPreferred
- [ ] server_selection/ReplicaSetWithPrimary/read/Nearest
- [ ] server_selection/ReplicaSetWithPrimary/read/Nearest_multiple
- [ ] server_selection/ReplicaSetWithPrimary/read/Nearest_non_matching
- [ ] server_selection/ReplicaSetWithPrimary/read/Primary
- [ ] server_selection/ReplicaSetWithPrimary/read/PrimaryPreferred
- [ ] server_selection/ReplicaSetWithPrimary/read/PrimaryPreferred_non_matching
- [ ] server_selection/ReplicaSetWithPrimary/read/Secondary
- [ ] server_selection/ReplicaSetWithPrimary/read/Secondary_non_matching
- [ ] server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred
- [ ] server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred_non_matching
- [ ] server_selection/ReplicaSetWithPrimary/read/SecondaryPreferred_tags
- [ ] server_selection/ReplicaSetWithPrimary/write/SecondaryPreferred
- [ ] server_selection/Sharded/read/Nearest
- [ ] server_selection/Sharded/read/Primary
- [ ] server_selection/Sharded/read/PrimaryPreferred
- [ ] server_selection/Sharded/read/Secondary
- [ ] server_selection/Sharded/read/SecondaryPreferred
- [ ] server_selection/Sharded/write/Nearest
- [ ] server_selection/Sharded/write/Primary
- [ ] server_selection/Sharded/write/PrimaryPreferred
- [ ] server_selection/Sharded/write/Secondary
- [ ] server_selection/Sharded/write/SecondaryPreferred
- [ ] server_selection/Single/read/SecondaryPreferred
- [ ] server_selection/Single/write/SecondaryPreferred
- [ ] server_selection/Unknown/read/SecondaryPreferred
- [ ] server_selection/Unknown/write/SecondaryPreferred
Transactions
https://github.com/mongodb/specifications/tree/master/source/transactions
- [ ] abort
- [ ] bulk
- [ ] causal-consistency
- [ ] commit
- [ ] delete
- [ ] error-labels
- [ ] errors
- [ ] findOneAndDelete
- [ ] findOneAndReplace
- [ ] findOneAndUpdate
- [ ] insert
- [ ] isolation
- [ ] read-pref
- [ ] reads
- [ ] retryable-abort
- [ ] retryable-commit
- [ ] retryable-writes
- [ ] run-command
- [ ] transaction-options
- [ ] update
- [ ] write-concern