Skip to content

Commit 37c8e99

Browse files
committed
PHPLIB-510: Use explicit assertion for assertDocumentsMatch
1 parent 4d89115 commit 37c8e99

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

tests/SpecTests/ClientSideEncryptionSpecTest.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,6 @@ public static function assertCommandMatches(stdClass $expected, stdClass $actual
6161
static::assertDocumentsMatch($expected, $actual);
6262
}
6363

64-
public function assertSameDocument($expectedDocument, $actualDocument)
65-
{
66-
static::assertDocumentsMatch($expectedDocument, $actualDocument);
67-
}
68-
6964
/**
7065
* Execute an individual test case from the specification.
7166
*
@@ -127,7 +122,7 @@ public function testClientSideEncryption(stdClass $test, array $runOn = null, ar
127122
$context->disableEncryption();
128123

129124
if (isset($test->outcome->collection->data)) {
130-
$this->assertOutcomeCollectionData($test->outcome->collection->data);
125+
$this->assertOutcomeCollectionData($test->outcome->collection->data, ResultExpectation::ASSERT_DOCUMENTS_MATCH);
131126
}
132127
}
133128

tests/SpecTests/FunctionalTestCase.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,9 @@ protected static function assertDocumentsMatch($expectedDocument, $actualDocumen
9898
* Assert data within the outcome collection.
9999
*
100100
* @param array $expectedDocuments
101+
* @param int $resultExpectation
101102
*/
102-
protected function assertOutcomeCollectionData(array $expectedDocuments)
103+
protected function assertOutcomeCollectionData(array $expectedDocuments, $resultExpectation = ResultExpectation::ASSERT_SAME_DOCUMENT)
103104
{
104105
$outcomeCollection = $this->getOutcomeCollection($this->getContext()->outcomeReadOptions);
105106

@@ -111,7 +112,19 @@ protected function assertOutcomeCollectionData(array $expectedDocuments)
111112
list($expectedDocument, $actualDocument) = $documents;
112113
$this->assertNotNull($expectedDocument);
113114
$this->assertNotNull($actualDocument);
114-
$this->assertSameDocument($expectedDocument, $actualDocument);
115+
116+
switch ($resultExpectation) {
117+
case ResultExpectation::ASSERT_SAME_DOCUMENT:
118+
$this->assertSameDocument($expectedDocument, $actualDocument);
119+
break;
120+
121+
case ResultExpectation::ASSERT_DOCUMENTS_MATCH:
122+
$this->assertDocumentsMatch($expectedDocument, $actualDocument);
123+
break;
124+
125+
default:
126+
$this->fail(sprintf('Invalid result expectation "%d" for %s', $resultExpectation, __METHOD__));
127+
}
115128
}
116129
}
117130

tests/SpecTests/ResultExpectation.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use MongoDB\Exception\InvalidArgumentException;
1010
use MongoDB\InsertManyResult;
1111
use MongoDB\InsertOneResult;
12-
use MongoDB\Tests\TestCase;
1312
use MongoDB\UpdateResult;
1413
use stdClass;
1514
use function call_user_func;
@@ -34,6 +33,7 @@ final class ResultExpectation
3433
const ASSERT_MATCHES_DOCUMENT = 9;
3534
const ASSERT_NULL = 10;
3635
const ASSERT_CALLABLE = 11;
36+
const ASSERT_DOCUMENTS_MATCH = 12;
3737

3838
/** @var integer */
3939
private $assertionType = self::ASSERT_NOTHING;
@@ -153,11 +153,11 @@ public static function fromTransactions(stdClass $operation, $defaultAssertionTy
153153
/**
154154
* Assert that the result expectation matches the actual outcome.
155155
*
156-
* @param TestCase $test Test instance for performing assertions
157-
* @param mixed $result Result (if any) from the actual outcome
156+
* @param FunctionalTestCase $test Test instance for performing assertions
157+
* @param mixed $result Result (if any) from the actual outcome
158158
* @throws LogicException if the assertion type is unsupported
159159
*/
160-
public function assert(TestCase $test, $actual)
160+
public function assert(FunctionalTestCase $test, $actual)
161161
{
162162
$expected = $this->expectedValue;
163163

@@ -287,6 +287,10 @@ public function assert(TestCase $test, $actual)
287287
$test->assertSameDocuments($expected, $actual);
288288
break;
289289

290+
case self::ASSERT_DOCUMENTS_MATCH:
291+
$test->assertDocumentsMatch($expected, $actual);
292+
break;
293+
290294
case self::ASSERT_UPDATE:
291295
$test->assertInstanceOf(UpdateResult::class, $actual);
292296

0 commit comments

Comments
 (0)