Commit 5076ff16 authored by Jeremy Mikola's avatar Jeremy Mikola

Do not check modifiedCount for updates on 2.4

nModified is not provided for legacy write ops, so we should not check for it. Once PHPC-278 is implemented, we can change these assertions to check for null exactly.
parent 4e22eb2f
......@@ -9,11 +9,15 @@ namespace MongoDB\Tests\Collection\CrudSpec;
*/
class ReplaceOneFunctionalTest extends FunctionalTestCase
{
private $omitModifiedCount;
public function setUp()
{
parent::setUp();
$this->createFixtures(3);
$this->omitModifiedCount = version_compare($this->getServerVersion(), '2.6.0', '<');
}
public function testReplaceOneWhenManyDocumentsMatch()
......@@ -23,7 +27,7 @@ class ReplaceOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->replaceOne($filter, $replacement);
$this->assertSame(1, $result->getMatchedCount());
$this->assertSame(1, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(1, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 11),
......@@ -41,7 +45,7 @@ class ReplaceOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->replaceOne($filter, $replacement);
$this->assertSame(1, $result->getMatchedCount());
$this->assertSame(1, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(1, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 111),
......@@ -59,7 +63,7 @@ class ReplaceOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->replaceOne($filter, $replacement);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 11),
......@@ -78,7 +82,7 @@ class ReplaceOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->replaceOne($filter, $replacement, $options);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$this->assertSame(4, $result->getUpsertedId());
$expected = array(
......@@ -100,7 +104,7 @@ class ReplaceOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->replaceOne($filter, $replacement, $options);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$this->assertSame(4, $result->getUpsertedId());
$expected = array(
......
......@@ -9,11 +9,15 @@ namespace MongoDB\Tests\Collection\CrudSpec;
*/
class UpdateManyFunctionalTest extends FunctionalTestCase
{
private $omitModifiedCount;
public function setUp()
{
parent::setUp();
$this->createFixtures(3);
$this->omitModifiedCount = version_compare($this->getServerVersion(), '2.6.0', '<');
}
public function testUpdateManyWhenManyDocumentsMatch()
......@@ -23,7 +27,7 @@ class UpdateManyFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateMany($filter, $update);
$this->assertSame(2, $result->getMatchedCount());
$this->assertSame(2, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(2, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 11),
......@@ -41,7 +45,7 @@ class UpdateManyFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateMany($filter, $update);
$this->assertSame(1, $result->getMatchedCount());
$this->assertSame(1, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(1, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 12),
......@@ -59,7 +63,7 @@ class UpdateManyFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateMany($filter, $update);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 11),
......@@ -78,7 +82,7 @@ class UpdateManyFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateMany($filter, $update, $options);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$this->assertSame(4, $result->getUpsertedId());
$expected = array(
......
......@@ -9,11 +9,15 @@ namespace MongoDB\Tests\Collection\CrudSpec;
*/
class UpdateOneFunctionalTest extends FunctionalTestCase
{
private $omitModifiedCount;
public function setUp()
{
parent::setUp();
$this->createFixtures(3);
$this->omitModifiedCount = version_compare($this->getServerVersion(), '2.6.0', '<');
}
public function testUpdateOneWhenManyDocumentsMatch()
......@@ -23,7 +27,7 @@ class UpdateOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateOne($filter, $update);
$this->assertSame(1, $result->getMatchedCount());
$this->assertSame(1, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(1, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 11),
......@@ -41,7 +45,7 @@ class UpdateOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateOne($filter, $update);
$this->assertSame(1, $result->getMatchedCount());
$this->assertSame(1, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(1, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 12),
......@@ -59,7 +63,7 @@ class UpdateOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateOne($filter, $update);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$expected = array(
array('_id' => 1, 'x' => 11),
......@@ -78,7 +82,7 @@ class UpdateOneFunctionalTest extends FunctionalTestCase
$result = $this->collection->updateOne($filter, $update, $options);
$this->assertSame(0, $result->getMatchedCount());
$this->assertSame(0, $result->getModifiedCount());
$this->omitModifiedCount or $this->assertSame(0, $result->getModifiedCount());
$this->assertSame(4, $result->getUpsertedId());
$expected = array(
......
......@@ -3,8 +3,9 @@
namespace MongoDB\Tests;
use MongoDB\Driver\Command;
use MongoDB\Driver\Manager;
use MongoDB\Driver\Cursor;
use MongoDB\Driver\Manager;
use MongoDB\Driver\ReadPreference;
abstract class FunctionalTestCase extends TestCase
{
......@@ -32,4 +33,17 @@ abstract class FunctionalTestCase extends TestCase
$this->assertArrayHasKey('ok', $document);
$this->assertEquals(1, $document['ok']);
}
protected function getServerVersion(ReadPreference $readPreference = null)
{
$cursor = $this->manager->executeCommand(
$this->getDatabaseName(),
new Command(array('buildInfo' => 1)),
$readPreference ?: new ReadPreference(ReadPreference::RP_PRIMARY)
);
$document = current($cursor->toArray());
return $document['version'];
}
}
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