From 47fd6730e0da7d15d5cd0ef550ce2c957208f8eb Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 14 Jan 2020 10:57:54 +0100 Subject: [PATCH] use `nodeExists` instead of catching exceptions makes the intent of the code more clear imo Signed-off-by: Robin Appelman --- lib/private/DirectEditing/Manager.php | 5 ++--- tests/lib/DirectEditing/ManagerTest.php | 12 ++++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/private/DirectEditing/Manager.php b/lib/private/DirectEditing/Manager.php index ac85e62cb7..5e3f775593 100644 --- a/lib/private/DirectEditing/Manager.php +++ b/lib/private/DirectEditing/Manager.php @@ -124,10 +124,9 @@ class Manager implements IManager { public function create(string $path, string $editorId, string $creatorId, $templateId = null): string { $userFolder = $this->rootFolder->getUserFolder($this->userId); - try { - $file = $userFolder->get($path); + if ($userFolder->nodeExists($path)) { throw new \RuntimeException('File already exists'); - } catch (\OCP\Files\NotFoundException $e) { + } else { $file = $userFolder->newFile($path); $editor = $this->getEditor($editorId); $creators = $editor->getCreators(); diff --git a/tests/lib/DirectEditing/ManagerTest.php b/tests/lib/DirectEditing/ManagerTest.php index 1f18a25115..737a41425e 100644 --- a/tests/lib/DirectEditing/ManagerTest.php +++ b/tests/lib/DirectEditing/ManagerTest.php @@ -153,9 +153,9 @@ class ManagerTest extends TestCase { ->method('generate') ->willReturn($expectedToken); $this->userFolder - ->method('get') + ->method('nodeExists') ->with('/File.txt') - ->willThrowException(new NotFoundException()); + ->willReturn(false); $this->userFolder->expects($this->once()) ->method('newFile') ->willReturn($file); @@ -173,9 +173,9 @@ class ManagerTest extends TestCase { ->method('generate') ->willReturn($expectedToken); $this->userFolder - ->method('get') + ->method('nodeExists') ->with('/File.txt') - ->willThrowException(new NotFoundException()); + ->willReturn(false); $this->userFolder->expects($this->once()) ->method('newFile') ->willReturn($file); @@ -188,6 +188,10 @@ class ManagerTest extends TestCase { public function testCreateFileAlreadyExists() { $this->expectException(\RuntimeException::class); + $this->userFolder + ->method('nodeExists') + ->with('/File.txt') + ->willReturn(true); $this->manager->create('/File.txt', 'testeditor', 'createEmpty'); }