PHPLIB-510: Use explicit assertion for assertDocumentsMatch

parent 4d891151
...@@ -61,11 +61,6 @@ class ClientSideEncryptionSpecTest extends FunctionalTestCase ...@@ -61,11 +61,6 @@ class ClientSideEncryptionSpecTest extends FunctionalTestCase
static::assertDocumentsMatch($expected, $actual); static::assertDocumentsMatch($expected, $actual);
} }
public function assertSameDocument($expectedDocument, $actualDocument)
{
static::assertDocumentsMatch($expectedDocument, $actualDocument);
}
/** /**
* Execute an individual test case from the specification. * Execute an individual test case from the specification.
* *
...@@ -127,7 +122,7 @@ class ClientSideEncryptionSpecTest extends FunctionalTestCase ...@@ -127,7 +122,7 @@ class ClientSideEncryptionSpecTest extends FunctionalTestCase
$context->disableEncryption(); $context->disableEncryption();
if (isset($test->outcome->collection->data)) { if (isset($test->outcome->collection->data)) {
$this->assertOutcomeCollectionData($test->outcome->collection->data); $this->assertOutcomeCollectionData($test->outcome->collection->data, ResultExpectation::ASSERT_DOCUMENTS_MATCH);
} }
} }
......
...@@ -98,8 +98,9 @@ class FunctionalTestCase extends BaseFunctionalTestCase ...@@ -98,8 +98,9 @@ class FunctionalTestCase extends BaseFunctionalTestCase
* Assert data within the outcome collection. * Assert data within the outcome collection.
* *
* @param array $expectedDocuments * @param array $expectedDocuments
* @param int $resultExpectation
*/ */
protected function assertOutcomeCollectionData(array $expectedDocuments) protected function assertOutcomeCollectionData(array $expectedDocuments, $resultExpectation = ResultExpectation::ASSERT_SAME_DOCUMENT)
{ {
$outcomeCollection = $this->getOutcomeCollection($this->getContext()->outcomeReadOptions); $outcomeCollection = $this->getOutcomeCollection($this->getContext()->outcomeReadOptions);
...@@ -111,7 +112,19 @@ class FunctionalTestCase extends BaseFunctionalTestCase ...@@ -111,7 +112,19 @@ class FunctionalTestCase extends BaseFunctionalTestCase
list($expectedDocument, $actualDocument) = $documents; list($expectedDocument, $actualDocument) = $documents;
$this->assertNotNull($expectedDocument); $this->assertNotNull($expectedDocument);
$this->assertNotNull($actualDocument); $this->assertNotNull($actualDocument);
$this->assertSameDocument($expectedDocument, $actualDocument);
switch ($resultExpectation) {
case ResultExpectation::ASSERT_SAME_DOCUMENT:
$this->assertSameDocument($expectedDocument, $actualDocument);
break;
case ResultExpectation::ASSERT_DOCUMENTS_MATCH:
$this->assertDocumentsMatch($expectedDocument, $actualDocument);
break;
default:
$this->fail(sprintf('Invalid result expectation "%d" for %s', $resultExpectation, __METHOD__));
}
} }
} }
......
...@@ -9,7 +9,6 @@ use MongoDB\Driver\WriteResult; ...@@ -9,7 +9,6 @@ use MongoDB\Driver\WriteResult;
use MongoDB\Exception\InvalidArgumentException; use MongoDB\Exception\InvalidArgumentException;
use MongoDB\InsertManyResult; use MongoDB\InsertManyResult;
use MongoDB\InsertOneResult; use MongoDB\InsertOneResult;
use MongoDB\Tests\TestCase;
use MongoDB\UpdateResult; use MongoDB\UpdateResult;
use stdClass; use stdClass;
use function call_user_func; use function call_user_func;
...@@ -34,6 +33,7 @@ final class ResultExpectation ...@@ -34,6 +33,7 @@ final class ResultExpectation
const ASSERT_MATCHES_DOCUMENT = 9; const ASSERT_MATCHES_DOCUMENT = 9;
const ASSERT_NULL = 10; const ASSERT_NULL = 10;
const ASSERT_CALLABLE = 11; const ASSERT_CALLABLE = 11;
const ASSERT_DOCUMENTS_MATCH = 12;
/** @var integer */ /** @var integer */
private $assertionType = self::ASSERT_NOTHING; private $assertionType = self::ASSERT_NOTHING;
...@@ -153,11 +153,11 @@ final class ResultExpectation ...@@ -153,11 +153,11 @@ final class ResultExpectation
/** /**
* Assert that the result expectation matches the actual outcome. * Assert that the result expectation matches the actual outcome.
* *
* @param TestCase $test Test instance for performing assertions * @param FunctionalTestCase $test Test instance for performing assertions
* @param mixed $result Result (if any) from the actual outcome * @param mixed $result Result (if any) from the actual outcome
* @throws LogicException if the assertion type is unsupported * @throws LogicException if the assertion type is unsupported
*/ */
public function assert(TestCase $test, $actual) public function assert(FunctionalTestCase $test, $actual)
{ {
$expected = $this->expectedValue; $expected = $this->expectedValue;
...@@ -287,6 +287,10 @@ final class ResultExpectation ...@@ -287,6 +287,10 @@ final class ResultExpectation
$test->assertSameDocuments($expected, $actual); $test->assertSameDocuments($expected, $actual);
break; break;
case self::ASSERT_DOCUMENTS_MATCH:
$test->assertDocumentsMatch($expected, $actual);
break;
case self::ASSERT_UPDATE: case self::ASSERT_UPDATE:
$test->assertInstanceOf(UpdateResult::class, $actual); $test->assertInstanceOf(UpdateResult::class, $actual);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment