PHPLIB-510: Use explicit assertion for assertDocumentsMatch

parent 4d891151
......@@ -61,11 +61,6 @@ class ClientSideEncryptionSpecTest extends FunctionalTestCase
static::assertDocumentsMatch($expected, $actual);
}
public function assertSameDocument($expectedDocument, $actualDocument)
{
static::assertDocumentsMatch($expectedDocument, $actualDocument);
}
/**
* Execute an individual test case from the specification.
*
......@@ -127,7 +122,7 @@ class ClientSideEncryptionSpecTest extends FunctionalTestCase
$context->disableEncryption();
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
* Assert data within the outcome collection.
*
* @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);
......@@ -111,7 +112,19 @@ class FunctionalTestCase extends BaseFunctionalTestCase
list($expectedDocument, $actualDocument) = $documents;
$this->assertNotNull($expectedDocument);
$this->assertNotNull($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;
use MongoDB\Exception\InvalidArgumentException;
use MongoDB\InsertManyResult;
use MongoDB\InsertOneResult;
use MongoDB\Tests\TestCase;
use MongoDB\UpdateResult;
use stdClass;
use function call_user_func;
......@@ -34,6 +33,7 @@ final class ResultExpectation
const ASSERT_MATCHES_DOCUMENT = 9;
const ASSERT_NULL = 10;
const ASSERT_CALLABLE = 11;
const ASSERT_DOCUMENTS_MATCH = 12;
/** @var integer */
private $assertionType = self::ASSERT_NOTHING;
......@@ -153,11 +153,11 @@ final class ResultExpectation
/**
* 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
* @throws LogicException if the assertion type is unsupported
*/
public function assert(TestCase $test, $actual)
public function assert(FunctionalTestCase $test, $actual)
{
$expected = $this->expectedValue;
......@@ -287,6 +287,10 @@ final class ResultExpectation
$test->assertSameDocuments($expected, $actual);
break;
case self::ASSERT_DOCUMENTS_MATCH:
$test->assertDocumentsMatch($expected, $actual);
break;
case self::ASSERT_UPDATE:
$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