blob: 0b9690f5a8ddd1cca62769bb00fcef52fa6e39d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/**
* Executes a test case that inserts documents, issues an aggregate command on a collection
* 'collection' and compares the results with the expected.
*
* testCase.inputDocuments - a document or an array of documents to insert.
* testCase.pipeline - an aggregation pipeline to execute.
* testCase.expectedResults - an array of documents expected to be produced by the "aggregate"
* command.
* testCase.expectedErrorCode - an expected error do be produced by the "aggregate" command.
*/
function executeAggregationTestCase(collection, testCase) {
jsTestLog(tojson(testCase));
assert.commandWorked(collection.remove({}));
// Insert some documents into the collection.
assert.commandWorked(collection.insert(testCase.inputDocuments));
// Issue an aggregate command and verify the result.
try {
const actualResults = collection.aggregate(testCase.pipeline).toArray();
assert(testCase.expectedErrorCode === undefined,
`Expected an exception with code ${testCase.expectedErrorCode}`);
assert.docEq(actualResults, testCase.expectedResults);
} catch (error) {
if (testCase.expectedErrorCode === undefined) {
throw error;
}
assert.commandFailedWithCode(error, testCase.expectedErrorCode);
}
}
|