From 68c04722ffce239e993d162efd64e746f8a0e4f6 Mon Sep 17 00:00:00 2001 From: githubjeka Date: Thu, 5 Jul 2018 07:55:02 +0300 Subject: [PATCH] Fixed bug when unedited Document saved --- models/DocumentFileEntity.php | 2 +- module.json | 2 +- tests/fixtures/data/documents.php | 15 +++++++++++ tests/unit/DocumentFileEntityTest.php | 31 +++++++++++++++++++++ tests/unit/DocumentTest.php | 39 +++++++++++---------------- 5 files changed, 64 insertions(+), 25 deletions(-) create mode 100644 tests/fixtures/data/documents.php create mode 100644 tests/unit/DocumentFileEntityTest.php diff --git a/models/DocumentFileEntity.php b/models/DocumentFileEntity.php index 89e469b..a144568 100644 --- a/models/DocumentFileEntity.php +++ b/models/DocumentFileEntity.php @@ -79,7 +79,7 @@ public function moveToNewCategory() $fromPath = $this->fromPath; $toPath = $this->toPath; - if ($toPath === null || $fromPath === null) { + if ($toPath === null || $fromPath === null || $toPath === $fromPath) { return true; } diff --git a/module.json b/module.json index 75b0a36..52f88fb 100644 --- a/module.json +++ b/module.json @@ -10,7 +10,7 @@ "workflow", "documents" ], - "version": "0.1.4dev", + "version": "0.1.5", "humhub": { "minVersion": "1.2.7" }, diff --git a/tests/fixtures/data/documents.php b/tests/fixtures/data/documents.php new file mode 100644 index 0000000..ff0be4e --- /dev/null +++ b/tests/fixtures/data/documents.php @@ -0,0 +1,15 @@ + [ + 'name' => 'Document for edit', + 'number' => '1333-e', + 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit....', + 'created_by' => 1, + 'created_at' => time(), + 'registered_at' => strtotime('2017-08-14'), + 'from' => 'Store', + 'to' => 'Office', + 'category' => 1, + 'type' => 1, + ], +]; diff --git a/tests/unit/DocumentFileEntityTest.php b/tests/unit/DocumentFileEntityTest.php new file mode 100644 index 0000000..2126795 --- /dev/null +++ b/tests/unit/DocumentFileEntityTest.php @@ -0,0 +1,31 @@ + + * @property \tracker\UnitTester tester + */ +class DocumentFileEntityTest extends \Codeception\Test\Unit +{ + public function testMoveToNewCategory() + { + $this->tester->haveFixtures([ + 'documents' => [ + 'class' => DocumentFixture::class, + 'dataFile' => '@tracker/tests/fixtures/data/documents.php' + ] + ]); + + /** @var Document $defaultDocument */ + $defaultDocument = $this->tester->grabFixture('documents', 'default'); + + $file = new DocumentFileEntity($defaultDocument); + + $this->assertTrue($file->moveToNewCategory()); + } +} diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index aee0b01..70a47ef 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -29,6 +29,7 @@ function mkdir() use tracker\models\Document; use tracker\models\DocumentFileEntity; use tracker\tests\fixtures\DocumentFileFixture; + use tracker\tests\fixtures\DocumentFixture; /** * @author Evgeniy Tkachenko @@ -145,38 +146,30 @@ public function testWorkWithCreator() public function testWorkWithEditor() { - $defaultAttributes = [ - 'name' => 'Document for edit', - 'number' => '1333-e', - 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit....', - 'created_by' => 1, - 'created_at' => time(), - 'registered_at' => strtotime('2017-08-14'), - 'from' => 'Store', - 'to' => 'Office', - 'category' => 1, - 'type' => 1, - ]; + $this->tester->haveFixtures([ + 'documents' => [ + 'class' => DocumentFixture::class, + 'dataFile' => '@tracker/tests/fixtures/data/documents.php' + ] + ]); - $this->tester->dontSeeRecord(Document::class, ['name' => $defaultAttributes['name']]); - $this->tester->haveRecord(Document::class, $defaultAttributes); - $this->tester->seeRecord(Document::class, ['name' => $defaultAttributes['name']]); + /** @var Document $defaultDocument */ + $defaultDocument = $this->tester->grabFixture('documents', 'default'); - $defaultDocument = Document::find()->where(['name' => $defaultAttributes['name']])->one(); $documentEditor = new DocumentEditor($defaultDocument); $requestModel = $documentEditor->getDocumentForm(); - $this->assertEquals($defaultAttributes['name'], $requestModel->name); - $this->assertEquals($defaultAttributes['description'], $requestModel->description); - $this->assertEquals($defaultAttributes['registered_at'], + $this->assertEquals($defaultDocument['name'], $requestModel->name); + $this->assertEquals($defaultDocument['description'], $requestModel->description); + $this->assertEquals($defaultDocument['registered_at'], date_create_from_format('Y-m-d', $requestModel->registeredAt) ->setTime(0, 0) ->format('U')); - $this->assertEquals($defaultAttributes['from'], $requestModel->from); - $this->assertEquals($defaultAttributes['to'], $requestModel->to); - $this->assertEquals($defaultAttributes['type'], $requestModel->type); - $this->assertEquals($defaultAttributes['category'], $requestModel->category); + $this->assertEquals($defaultDocument['from'], $requestModel->from); + $this->assertEquals($defaultDocument['to'], $requestModel->to); + $this->assertEquals($defaultDocument['type'], $requestModel->type); + $this->assertEquals($defaultDocument['category'], $requestModel->category); $newAttributes = [ 'name' => 'Document for edit 2',