diff options
author | Jack Mulrow <jack.mulrow@mongodb.com> | 2018-11-05 18:56:36 -0500 |
---|---|---|
committer | Jack Mulrow <jack.mulrow@mongodb.com> | 2018-11-07 11:10:27 -0500 |
commit | ca31fd3a7535932a887faffc9c9334990888106f (patch) | |
tree | c60840de37921cb721feb611498bd73a8d1e2260 /jstests/noPassthrough/shell_assertions.js | |
parent | 8c2c95edbdf32e88868396cf6927a9346bbc85e4 (diff) | |
download | mongo-ca31fd3a7535932a887faffc9c9334990888106f.tar.gz |
SERVER-37868 Use unordered array comparisons in core_txns tests
Diffstat (limited to 'jstests/noPassthrough/shell_assertions.js')
-rw-r--r-- | jstests/noPassthrough/shell_assertions.js | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/jstests/noPassthrough/shell_assertions.js b/jstests/noPassthrough/shell_assertions.js index 88fdcaa79ab..72c572fa5c7 100644 --- a/jstests/noPassthrough/shell_assertions.js +++ b/jstests/noPassthrough/shell_assertions.js @@ -591,6 +591,105 @@ }); }); + /* assert.sameMembers tests */ + + tests.push(function sameMembersFailsWithInvalidArguments() { + assert.throws(() => assert.sameMembers()); + assert.throws(() => assert.sameMembers([])); + assert.throws(() => assert.sameMembers({}, {})); + assert.throws(() => assert.sameMembers(1, 1)); + }); + + tests.push(function sameMembersFailsWhenLengthsDifferent() { + assert.throws(() => assert.sameMembers([], [1])); + assert.throws(() => assert.sameMembers([], [1])); + assert.throws(() => assert.sameMembers([1, 2], [1])); + assert.throws(() => assert.sameMembers([1], [1, 2])); + }); + + tests.push(function sameMembersFailsWhenCountsOfDuplicatesDifferent() { + assert.throws(() => assert.sameMembers([1, 1], [1, 2])); + assert.throws(() => assert.sameMembers([1, 2], [1, 1])); + }); + + tests.push(function sameMembersFailsWithDifferentObjects() { + assert.throws(() => assert.sameMembers([{_id: 0, a: 0}], [{_id: 0, a: 1}])); + assert.throws(() => assert.sameMembers([{_id: 1, a: 0}], [{_id: 0, a: 0}])); + assert.throws(() => { + assert.sameMembers([{a: [{b: 0, c: 0}], _id: 0}], [{_id: 0, a: [{c: 0, b: 1}]}]); + }); + }); + + tests.push(function sameMembersFailsWithDifferentBSONTypes() { + assert.throws(() => { + assert.sameMembers([new BinData(0, "JANgqwetkqwklEWRbWERKKJREtbq")], + [new BinData(0, "xxxgqwetkqwklEWRbWERKKJREtbq")]); + }); + assert.throws(() => assert.sameMembers([new Timestamp(0, 1)], [new Timestamp(0, 2)])); + }); + + tests.push(function sameMembersDoesNotSortNestedArrays() { + assert.throws(() => assert.sameMembers([[1, 2]], [[2, 1]])); + assert.throws(() => { + assert.sameMembers([{a: [{b: 0}, {b: 1, c: 0}], _id: 0}], + [{_id: 0, a: [{c: 0, b: 1}, {b: 0}]}]); + }); + }); + + tests.push(function sameMembersPassesWithEmptyArrays() { + assert.sameMembers([], []); + }); + + tests.push(function sameMembersPassesSingleElement() { + assert.sameMembers([1], [1]); + }); + + tests.push(function sameMembersPassesWithSameOrder() { + assert.sameMembers([1, 2], [1, 2]); + assert.sameMembers([1, 2, 3], [1, 2, 3]); + }); + + tests.push(function sameMembersPassesWithDifferentOrder() { + assert.sameMembers([2, 1], [1, 2]); + assert.sameMembers([1, 2, 3], [3, 1, 2]); + }); + + tests.push(function sameMembersPassesWithDuplicates() { + assert.sameMembers([1, 1, 2], [1, 1, 2]); + assert.sameMembers([1, 1, 2], [1, 2, 1]); + assert.sameMembers([2, 1, 1], [1, 1, 2]); + }); + + tests.push(function sameMembersPassesWithSortedNestedArrays() { + assert.sameMembers([[1, 2]], [[1, 2]]); + assert.sameMembers([{a: [{b: 0}, {b: 1, c: 0}], _id: 0}], + [{_id: 0, a: [{b: 0}, {c: 0, b: 1}]}]); + }); + + tests.push(function sameMembersPassesWithObjects() { + assert.sameMembers([{_id: 0, a: 0}], [{_id: 0, a: 0}]); + assert.sameMembers([{_id: 0, a: 0}, {_id: 1}], [{_id: 0, a: 0}, {_id: 1}]); + assert.sameMembers([{_id: 0, a: 0}, {_id: 1}], [{_id: 1}, {_id: 0, a: 0}]); + }); + + tests.push(function sameMembersPassesWithUnsortedObjects() { + assert.sameMembers([{a: 0, _id: 1}], [{_id: 1, a: 0}]); + assert.sameMembers([{a: [{b: 1, c: 0}], _id: 0}], [{_id: 0, a: [{c: 0, b: 1}]}]); + }); + + tests.push(function sameMembersPassesWithBSONTypes() { + assert.sameMembers([new BinData(0, "JANgqwetkqwklEWRbWERKKJREtbq")], + [new BinData(0, "JANgqwetkqwklEWRbWERKKJREtbq")]); + assert.sameMembers([new Timestamp(0, 1)], [new Timestamp(0, 1)]); + }); + + tests.push(function sameMembersPassesWithOtherTypes() { + assert.sameMembers([null], [null]); + assert.sameMembers([undefined], [undefined]); + assert.sameMembers(["a"], ["a"]); + assert.sameMembers([null, undefined, "a"], [undefined, "a", null]); + }); + /* main */ tests.forEach((test) => { |