summaryrefslogtreecommitdiffstats
path: root/tests/Unit/Db/FolderMapperTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/Db/FolderMapperTest.php')
-rw-r--r--tests/Unit/Db/FolderMapperTest.php228
1 files changed, 204 insertions, 24 deletions
diff --git a/tests/Unit/Db/FolderMapperTest.php b/tests/Unit/Db/FolderMapperTest.php
index deb235ff7..803c84ebe 100644
--- a/tests/Unit/Db/FolderMapperTest.php
+++ b/tests/Unit/Db/FolderMapperTest.php
@@ -50,21 +50,40 @@ class FolderMapperTest extends MapperTestUtility
];
}
-
+ /**
+ * @covers \OCA\News\Db\FolderMapper::find
+ */
public function testFind()
{
$userId = 'john';
$id = 3;
- $rows = [['id' => $this->folders[0]->getId()]];
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `id` = ? ' .
'AND `user_id` = ?';
- $this->setMapperResult($sql, [$id, $userId], $rows);
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(2))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], false);
+
+ $this->query->expects($this->exactly(2))
+ ->method('bindValue')
+ ->withConsecutive([1, 3, 1], [2, $userId, 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->with('')
+ ->will($this->returnValue([]));
$result = $this->folderMapper->find($userId, $id);
$this->assertEquals($this->folders[0], $result);
-
}
@@ -76,7 +95,26 @@ class FolderMapperTest extends MapperTestUtility
'WHERE `id` = ? ' .
'AND `user_id` = ?';
- $this->setMapperResult($sql, [$id, $userId]);
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(1))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(false);
+
+ $this->query->expects($this->exactly(2))
+ ->method('bindValue')
+ ->withConsecutive([1, $id, 1], [2, $userId, 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->with('')
+ ->will($this->returnValue([]));
$this->expectException(DoesNotExistException::class);
$this->folderMapper->find($userId, $id);
@@ -87,12 +125,30 @@ class FolderMapperTest extends MapperTestUtility
{
$userId = 'john';
$id = 3;
- $rows = $this->twoRows;
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `id` = ? ' .
'AND `user_id` = ?';
- $this->setMapperResult($sql, [$id, $userId], $rows);
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(2))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], ['id' => 5]);
+
+ $this->query->expects($this->exactly(2))
+ ->method('bindValue')
+ ->withConsecutive([1, 3, 1], [2, $userId, 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->with('')
+ ->will($this->returnValue([]));
$this->expectException(MultipleObjectsReturnedException::class);
$this->folderMapper->find($userId, $id);
@@ -103,12 +159,29 @@ class FolderMapperTest extends MapperTestUtility
public function testFindAllFromUser()
{
$userId = 'john';
- $rows = $this->twoRows;
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `user_id` = ? ' .
'AND `deleted_at` = 0';
- $this->setMapperResult($sql, [$userId], $rows);
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(3))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], ['id' => 5]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('bindValue')
+ ->withConsecutive([1, $userId, 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->will($this->returnValue([]));
$result = $this->folderMapper->findAllFromUser($userId);
$this->assertEquals($this->folders, $result);
@@ -119,12 +192,29 @@ class FolderMapperTest extends MapperTestUtility
{
$folderName = 'heheh';
$userId = 'john';
- $rows = $this->twoRows;
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `name` = ? ' .
'AND `user_id` = ?';
- $this->setMapperResult($sql, [$folderName, $userId], $rows);
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(3))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], ['id' => 5]);
+
+ $this->query->expects($this->exactly(2))
+ ->method('bindValue')
+ ->withConsecutive([1, $folderName, 2], [2, $userId, 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->will($this->returnValue([]));
$result = $this->folderMapper->findByName($folderName, $userId);
$this->assertEquals($this->folders, $result);
@@ -145,9 +235,25 @@ class FolderMapperTest extends MapperTestUtility
$sql3 = 'DELETE FROM `*PREFIX*news_items` WHERE `feed_id` NOT IN '.
'(SELECT `feeds`.`id` FROM `*PREFIX*news_feeds` `feeds`)';
- $this->setMapperResult($sql, $arguments, [], null, null, true);
- $this->setMapperResult($sql2, $arguments2, [], null, null, true);
- $this->setMapperResult($sql3, [], [], null, null, true);
+ $this->db->expects($this->exactly(3))
+ ->method('prepare')
+ ->withConsecutive(
+ [$sql, null, null],
+ [$sql2, null, null],
+ [$sql3, null, null]
+ )
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(2))
+ ->method('bindValue')
+ ->withConsecutive([1, 3, 1]);
+
+ $this->query->expects($this->exactly(3))
+ ->method('closeCursor');
+
+ $this->query->expects($this->exactly(3))
+ ->method('execute')
+ ->will($this->returnValue([]));
$this->folderMapper->delete($folder);
}
@@ -155,13 +261,32 @@ class FolderMapperTest extends MapperTestUtility
public function testGetPurgeDeleted()
{
- $rows = $this->twoRows;
- $deleteOlderThan = 110;
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `deleted_at` > 0 ' .
'AND `deleted_at` < ? ';
- $this->setMapperResult($sql, [$deleteOlderThan], $rows);
- $result = $this->folderMapper->getToDelete($deleteOlderThan);
+
+
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(3))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], ['id' => 5]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('bindValue')
+ ->withConsecutive([1, 110, 1]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->will($this->returnValue([]));
+
+ $result = $this->folderMapper->getToDelete(110);
$this->assertEquals($this->folders, $result);
}
@@ -170,13 +295,33 @@ class FolderMapperTest extends MapperTestUtility
public function testGetPurgeDeletedUser()
{
- $rows = $this->twoRows;
$deleteOlderThan = 110;
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `deleted_at` > 0 ' .
'AND `deleted_at` < ? ' .
'AND `user_id` = ?';
- $this->setMapperResult($sql, [$deleteOlderThan, $this->user], $rows);
+
+
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(3))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], ['id' => 5]);
+
+ $this->query->expects($this->exactly(2))
+ ->method('bindValue')
+ ->withConsecutive([1, 110, 1], [2, 'hh', 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->will($this->returnValue([]));
+
$result = $this->folderMapper->getToDelete(
$deleteOlderThan, $this->user
);
@@ -187,12 +332,30 @@ class FolderMapperTest extends MapperTestUtility
public function testGetAllPurgeDeletedUser()
{
- $rows = $this->twoRows;
-
$sql = 'SELECT * FROM `*PREFIX*news_folders` ' .
'WHERE `deleted_at` > 0 ' .
'AND `user_id` = ?';
- $this->setMapperResult($sql, [$this->user], $rows);
+
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->exactly(3))
+ ->method('fetch')
+ ->willReturnOnConsecutiveCalls(['id' => 4], ['id' => 5]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('bindValue')
+ ->withConsecutive([1, 'hh', 2]);
+
+ $this->query->expects($this->exactly(1))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->will($this->returnValue([]));
+
$result = $this->folderMapper->getToDelete(null, $this->user);
$this->assertEquals($this->folders, $result);
@@ -204,7 +367,24 @@ class FolderMapperTest extends MapperTestUtility
$userId = 'john';
$sql = 'DELETE FROM `*PREFIX*news_folders` WHERE `user_id` = ?';
- $this->setMapperResult($sql, [$userId]);
+ $this->db->expects($this->exactly(1))
+ ->method('prepare')
+ ->with($sql, null, null)
+ ->will(($this->returnValue($this->query)));
+
+ $this->query->expects($this->never())
+ ->method('fetch');
+
+ $this->query->expects($this->exactly(1))
+ ->method('bindValue')
+ ->withConsecutive([1, $userId, 2]);
+
+ $this->query->expects($this->exactly(0))
+ ->method('closeCursor');
+
+ $this->query->expects($this->once())
+ ->method('execute')
+ ->will($this->returnValue([]));
$this->folderMapper->deleteUser($userId);
}